34 lines
841 B
Text
34 lines
841 B
Text
scope # show some k-almost-primes - translation of C via Algol W
|
|
|
|
local proc kPrime( nv :: number, k :: number ) :: boolean
|
|
local p, f, n := 3, 0, nv;
|
|
while f <= k and n mod 2 = 0 do
|
|
n \:= 2;
|
|
f +:= 1
|
|
od;
|
|
while f <= k and p * p <= n do
|
|
while n mod p = 0 do
|
|
n \:= p;
|
|
f +:= 1
|
|
od;
|
|
p +:= 2
|
|
od;
|
|
if n > 1 then f +:= 1 fi;
|
|
return f = k
|
|
end;
|
|
|
|
scope # task
|
|
for k to 5 do
|
|
printf( "k = %d: ", k );
|
|
local c, i := 0, 2;
|
|
while c < 10 do
|
|
if kPrime( i, k ) then
|
|
printf( " %3d", i );
|
|
c +:= 1
|
|
fi;
|
|
i +:= 1
|
|
od;
|
|
print()
|
|
od
|
|
epocs
|
|
epocs
|