36 lines
723 B
Plaintext
36 lines
723 B
Plaintext
get "libhdr"
|
|
manifest $( limit = 500 $)
|
|
|
|
let dsum(n) =
|
|
n=0 -> 0,
|
|
dsum(n/10) + n rem 10
|
|
|
|
let sieve(prime, n) be
|
|
$( 0!prime := false
|
|
1!prime := false
|
|
for i=2 to n do i!prime := true
|
|
for i=2 to n/2
|
|
if i!prime
|
|
$( let j=i+i
|
|
while j<=n
|
|
$( j!prime := false
|
|
j := j+i
|
|
$)
|
|
$)
|
|
$)
|
|
|
|
let additive(prime, n) = n!prime & dsum(n)!prime
|
|
|
|
let start() be
|
|
$( let prime = vec limit
|
|
let num = 0
|
|
sieve(prime, limit)
|
|
for i=2 to limit
|
|
if additive(prime,i)
|
|
$( writed(i,5)
|
|
num := num + 1
|
|
if num rem 10 = 0 then wrch('*N')
|
|
$)
|
|
writef("*N*NFound %N additive primes < %N.*N", num, limit)
|
|
$)
|