32 lines
655 B
Text
32 lines
655 B
Text
print "Wieferich primes less than 5000: "
|
|
for i = 1 to 5000
|
|
if isWeiferich(i) then print i
|
|
next i
|
|
end
|
|
|
|
function isPrime(n)
|
|
if n < 2 then isPrime = 0 : goto [exit]
|
|
if n = 2 then isPrime = 1 : goto [exit]
|
|
if n mod 2 = 0 then isPrime = 0 : goto [exit]
|
|
isPrime = 1
|
|
for i = 3 to int(n^.5) step 2
|
|
if n mod i = 0 then isPrime = 0 : goto [exit]
|
|
next i
|
|
[exit]
|
|
end function
|
|
|
|
function isWeiferich(p)
|
|
if isPrime(p) = 0 then isWeiferich = 0 : goto [exit]
|
|
q = 1
|
|
p2 = p^2
|
|
while p > 1
|
|
q = (2*q) mod p2
|
|
p = p - 1
|
|
wend
|
|
if q = 1 then
|
|
isWeiferich = 1 : goto [exit]
|
|
else
|
|
isWeiferich = 0 : goto [exit]
|
|
end if
|
|
[exit]
|
|
end function
|