36 lines
775 B
Plaintext
36 lines
775 B
Plaintext
local fn IsPrime( n as NSUInteger ) as BOOL
|
|
NSUInteger i
|
|
|
|
if ( n < 2 ) then exit fn = NO
|
|
if ( n = 2 ) then exit fn = YES
|
|
if ( n mod 2 == 0 ) then exit fn = NO
|
|
for i = 3 to int(n^.5) step 2
|
|
if ( n mod i == 0 ) then exit fn = NO
|
|
next
|
|
end fn = YES
|
|
|
|
local fn Factors( n as NSInteger ) as NSInteger
|
|
NSInteger count = 0, f = 2
|
|
|
|
do
|
|
if n mod f == 0 then count++ : n /= f else f++
|
|
until ( f > n )
|
|
end fn = count
|
|
|
|
void local fn AttractiveNumbers( limit as NSInteger )
|
|
NSInteger c = 0, n
|
|
|
|
printf @"Attractive numbers through %d are:", limit
|
|
for n = 4 to limit
|
|
if fn IsPrime( fn Factors( n ) )
|
|
printf @"%4d \b", n
|
|
c++
|
|
if ( c mod 10 == 0 ) then print
|
|
end if
|
|
next
|
|
end fn
|
|
|
|
fn AttractiveNumbers( 120 )
|
|
|
|
HandleEvents
|