Carmichael 3 strong pseudoprimes: Difference between revisions
Content added Content deleted
Line 2,039: | Line 2,039: | ||
if isprime(p1) = 0 return ok |
if isprime(p1) = 0 return ok |
||
for h3 = 1 to p1 -1 |
for h3 = 1 to p1 -1 |
||
t1 = (h3 + p1) * (p1 -1) |
t1 = (h3 + p1) * (p1 -1) |
||
t2 = (-p1 * p1) % h3 |
t2 = (-p1 * p1) % h3 |
||
if t2 < 0 |
if t2 < 0 |
||
t2 = t2 + h3 |
t2 = t2 + h3 |
||
ok |
ok |
||
for d = 1 to h3 + p1 -1 |
for d = 1 to h3 + p1 -1 |
||
if t1 % d = 0 and t2 = (d % h3) |
if t1 % d = 0 and t2 = (d % h3) |
||
p2 = 1 + (t1 / d) |
p2 = 1 + (t1 / d) |
||
if isprime(p2) = 0 |
if isprime(p2) = 0 |
||
loop |
loop |
||
ok |
ok |
||
p3 = 1 + floor((p1 * p2 / h3)) |
p3 = 1 + floor((p1 * p2 / h3)) |
||
if isprime(p3) = 0 or ((p2 * p3) % (p1 -1)) != 1 |
if isprime(p3) = 0 or ((p2 * p3) % (p1 -1)) != 1 |
||
loop |
loop |
||
ok |
ok |
||
see "" + p1 + " " + p2 + " " + p3 + " " + p1*p2*p3 + nl |
see "" + p1 + " " + p2 + " " + p3 + " " + p1*p2*p3 + nl |
||
ok |
ok |
||
next |
next |
||
next |
next |
||