------------------------------------------------------------------------------------------------------
? for(n=550,11800,if(1,if(!ispower(n), if((n%2)==1,a=testq3a(n);if(1,if(1,if(1,print(n," ",a))))))))
551 0
553 0
555 0
557 103416
559 0
561 0
563 105656
565 0
567 0
569 107920
571 108300
573 0
575 0
-----------------------------------------------------------------------------------------------------
? testq3a(n)={count=0;ntries=0;for(c1=0,0,if(1, for(c2=0,0,for(c3=1,n-1,if(gcd(c3,n)==1, for(c4=0,n-1,if(gcd(c4,n)==1,f=x^3+c2*x^2+c3*x+c4;found=0; for(s=0,n-1,if((subst(f,x,s)%n)==0,found=1));f2=Mod(f,n);if(found==0, ntries=ntries+1;t=testcubicsym(f,n);if(t,count=count+1;)))))))));freq=1.0*count/ntries;return(count)}
------------------------------------------------------------------------------------------------------
? testcubicsym(f,n)={roots=vector(3);for(j=1,3,roots[j]=Mod(Mod(x,f),n)^(n^(j-1)));res=vector(3);for(k=1,7,m=8+k;d=digits(m,2);pr=1;for(j=1,3,if(d[j+1],pr=pr*roots[j]));sumd=0;for(j2=1,3,sumd=sumd+d[j2+1]);res[sumd]=res[sumd]+pr);t=1;for(j=1,1,t=t&&(lift(res[j])==Mod(((-1)^j)*polcoef(f,3-j),n)));return(t)}
%19 = (f,n)->roots=vector(3);for(j=1,3,roots[j]=Mod(Mod(x,f),n)^(n^(j-1)));res=vector(3);for(k=1,7,m=8+k;d=digits(m,2);pr=1;for(j=1,3,if(d[j+1],pr=pr*roots[j]));sumd=0;for(j2=1,3,sumd=sumd+d[j2+1]);res[sumd]=res[sumd]+pr);t=1;for(j=1,1,t=t&&(lift(res[j])==Mod(((-1)^j)*polcoef(f,3-j),n)));return(t)
-------------------------------------------------------------------------------------------------------------------
Related