36 lines
611 B
Plaintext
36 lines
611 B
Plaintext
p = 2
|
|
dp = 1
|
|
cont = 0
|
|
print("Primeros 19 primos circulares:")
|
|
while cont < 19
|
|
if isCircularPrime(p) then
|
|
print p," ";
|
|
cont = cont + 1
|
|
fi
|
|
p = p + dp
|
|
dp = 2
|
|
wend
|
|
end
|
|
|
|
sub isPrime(v)
|
|
if v < 2 return False
|
|
if mod(v, 2) = 0 return v = 2
|
|
if mod(v, 3) = 0 return v = 3
|
|
d = 5
|
|
while d * d <= v
|
|
if mod(v, d) = 0 then return False else d = d + 2 : fi
|
|
wend
|
|
return True
|
|
end sub
|
|
|
|
sub isCircularPrime(p)
|
|
n = floor(log(p)/log(10))
|
|
m = 10^n
|
|
q = p
|
|
for i = 0 to n
|
|
if (q < p or not isPrime(q)) return false
|
|
q = (mod(q, m)) * 10 + floor(q / m)
|
|
next i
|
|
return true
|
|
end sub
|