30 lines
592 B
Awk
30 lines
592 B
Awk
# syntax: GAWK -f ADDITIVE_PRIMES.AWK
|
|
BEGIN {
|
|
start = 1
|
|
stop = 500
|
|
for (i=start; i<=stop; i++) {
|
|
if (is_prime(i) && is_prime(sum_digits(i))) {
|
|
printf("%4d%1s",i,++count%10?"":"\n")
|
|
}
|
|
}
|
|
printf("\nAdditive primes %d-%d: %d\n",start,stop,count)
|
|
exit(0)
|
|
}
|
|
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)
|
|
}
|
|
function sum_digits(n, i,sum) {
|
|
for (i=1; i<=length(n); i++) {
|
|
sum += substr(n,i,1)
|
|
}
|
|
return(sum)
|
|
}
|