38 lines
791 B
Plaintext
38 lines
791 B
Plaintext
local fn IsPrime( n as NSUInteger ) as BOOL
|
|
NSUInteger i
|
|
BOOL result = YES
|
|
|
|
if ( n < 2 ) then exit fn = NO
|
|
for i = 2 to n + 1
|
|
if ( i * i <= n ) and ( n mod i == 0 )
|
|
exit fn = NO
|
|
end if
|
|
next
|
|
end fn = result
|
|
|
|
local fn DigSum( n as NSUInteger ) as NSUInteger
|
|
NSUInteger s = 0
|
|
while ( n > 0 )
|
|
s += ( n mod 10 )
|
|
n /= 10
|
|
wend
|
|
end fn = s
|
|
|
|
void local fn AdditivePrimes( n as NSUInteger )
|
|
NSUInteger i, s = 0, counter = 0
|
|
|
|
printf @"Additive Primes:"
|
|
for i = 2 to n
|
|
if ( fn IsPrime(i) ) and ( fn IsPrime( fn DigSum(i) ) )
|
|
s++
|
|
printf @"%4ld \b", i : counter++
|
|
if counter == 10 then counter = 0 : print
|
|
end if
|
|
next
|
|
printf @"\n\nFound %lu additive primes less than %lu.", s, n
|
|
end fn
|
|
|
|
fn AdditivePrimes( 500 )
|
|
|
|
HandleEvents
|