Circular primes: Difference between revisions
Content added Content deleted
(Forth version) |
|||
Line 2,059: | Line 2,059: | ||
=={{header|Ring}}== |
=={{header|Ring}}== |
||
<lang ring> |
<lang ring> |
||
see "working..." + nl |
|||
load "stdlib.ring" |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
limit = 20 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
flag = 1 |
flag = 1 |
||
nStr = string(n) |
|||
lenStr = len(nStr) |
|||
for |
for m = 1 to lenStr |
||
leftStr = left(nStr,m) |
|||
rightStr = right(nStr,lenStr-m) |
|||
strOk = rightStr + leftStr |
|||
nOk = number(strOk) |
|||
ind = find(Primes,nOk) |
|||
if isprime(primNum) and isprime(prim) and primNum >= prim and prim > 9 |
|||
if ind < 1 and strOk != nStr |
|||
add(Primes,nOk) |
|||
ok |
|||
if not isprimeNumber(nOk) or ind > 0 |
|||
flag = 0 |
flag = 0 |
||
exit |
exit |
||
ok |
ok |
||
next |
next |
||
if |
if flag = 1 |
||
row++ |
|||
see "" + n + " " |
|||
if row%5 = 0 |
|||
see nl |
|||
ok |
|||
ok |
|||
add(aPrimes,prim) |
|||
⚫ | |||
end |
end |
||
see |
see nl + "done..." + nl |
||
showarray(aPrimes) |
|||
func |
func isPrimeNumber(num) |
||
if (num <= 1) return 0 ok |
|||
see "[" |
|||
if (num % 2 = 0) and (num != 2) return 0 ok |
|||
svect = "" |
|||
for |
for i = 2 to sqrt(num) |
||
if (num % i = 0) return 0 ok |
|||
next |
next |
||
return 1 |
|||
see left(svect, len(svect) - 1) + "]" |
|||
</lang> |
</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
working... |
|||
⚫ | |||
First 19 circular numbers are: |
|||
[2,3,5,7,11,13,17,37,79,113,197,199,337,1193,3779,11939,19937,193939,199933] |
|||
2 3 5 7 11 |
|||
13 17 37 79 113 |
|||
197 199 337 1193 3779 |
|||
11939 19937 193939 199933 |
|||
done... |
|||
</pre> |
</pre> |
||