Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
46
Task/Circular-primes/AWK/circular-primes.awk
Normal file
46
Task/Circular-primes/AWK/circular-primes.awk
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# syntax: GAWK -f CIRCULAR_PRIMES.AWK
|
||||
BEGIN {
|
||||
p = 2
|
||||
printf("first 19 circular primes:")
|
||||
for (count=0; count<19; p++) {
|
||||
if (is_circular_prime(p)) {
|
||||
printf(" %d",p)
|
||||
count++
|
||||
}
|
||||
}
|
||||
printf("\n")
|
||||
exit(0)
|
||||
}
|
||||
function cycle(n, m,p) { # E.G. if n = 1234 returns 2341
|
||||
m = n
|
||||
p = 1
|
||||
while (m >= 10) {
|
||||
p *= 10
|
||||
m /= 10
|
||||
}
|
||||
return int(m+10*(n%p))
|
||||
}
|
||||
function is_circular_prime(p, p2) {
|
||||
if (!is_prime(p)) {
|
||||
return(0)
|
||||
}
|
||||
p2 = cycle(p)
|
||||
while (p2 != p) {
|
||||
if (p2 < p || !is_prime(p2)) {
|
||||
return(0)
|
||||
}
|
||||
p2 = cycle(p2)
|
||||
}
|
||||
return(1)
|
||||
}
|
||||
function is_prime(x, i) {
|
||||
if (x <= 1) {
|
||||
return(0)
|
||||
}
|
||||
for (i=2; i<=int(sqrt(x)); i++) {
|
||||
if (x % i == 0) {
|
||||
return(0)
|
||||
}
|
||||
}
|
||||
return(1)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue