27 lines
628 B
Plaintext
27 lines
628 B
Plaintext
program additive_primes;
|
|
loop for i in [i : i in [1..499] | additive_prime i] do
|
|
nprint(lpad(str i, 4));
|
|
if (n +:= 1) mod 10 = 0 then
|
|
print;
|
|
end if;
|
|
end loop;
|
|
print;
|
|
print("There are " + str n + " additive primes less than 500.");
|
|
|
|
op additive_prime(n);
|
|
return prime n and prime digitsum n;
|
|
end op;
|
|
|
|
op prime(n);
|
|
return n>=2 and not exists d in {2..floor sqrt n} | n mod d = 0;
|
|
end op;
|
|
|
|
op digitsum(n);
|
|
loop while n>0;
|
|
s +:= n mod 10;
|
|
n div:= 10;
|
|
end loop;
|
|
return s;
|
|
end op;
|
|
end program;
|