Chernick's Carmichael numbers: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: Simplify, tidy) |
|||
Line 384: | Line 384: | ||
=={{header|PARI/GP}}== |
=={{header|PARI/GP}}== |
||
===Just The Impossible=== |
|||
As I've said before a day isn't worth living unless I've done the impossible before breakfast! If before breakfast means starting last night and seeing what happened when I get up then this qualifies. See the discussion page. |
|||
<lang parigp> |
<lang parigp> |
||
cherCar(n)={ |
|||
n=0 |
|||
my(C=vector(n));C[1]=6; C[2]=12; for(g=3,n,C[g]=2^(g-2)*9); |
|||
? until(isprime(6*n+1)&isprime(12*n+1)&isprime(18*n+1)&isprime(36*n+1)&isprime(72*n+1)&isprime(144*n+1)&isprime(288*n+1)&isprime(576*n+1)&isprime(1152*n+1)&isprime(2304*n+1),n=n+ |
|||
my(i=1); my(N(g)=while(i<=n&ispseudoprime(g*C[i]+1),i=i+1); return(i>n)); |
|||
print(n) |
|||
i=1; my(G(g)=while(i<=n&isprime(g*C[i]+1),i=i+1); return(i>n)); |
|||
i=1; if(n>4,i=2^(n-4)); if(n>5,i=i*5); my(m=i); while(!(N(m)&G(m)),m=m+i); |
|||
printf("cherCar(%d): m = %d\n",n,m)} |
|||
for(x=3,9,cherCar(x)) |
|||
</lang> |
</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
|||
⚫ | |||
cherCar(3): m = 1 |
|||
cherCar(4): m = 1 |
|||
cherCar(5): m = 380 |
|||
cherCar(6): m = 380 |
|||
cherCar(7): m = 780320 |
|||
cherCar(8): m = 950560 |
|||
cherCar(9): m = 950560 |
|||
⚫ | |||
</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
{{libheader|ntheory}} |
{{libheader|ntheory}} |