29 lines
832 B
Text
29 lines
832 B
Text
program primes42;
|
|
loop
|
|
init n := 42; p := 0;
|
|
step n +:= 1;
|
|
until p = 42 do
|
|
if prime(n) then
|
|
print(lpad(str(p +:= 1), 2) + ": " + lpad(commatize(n), 20));
|
|
n +:= n;
|
|
end if;
|
|
end loop;
|
|
|
|
proc prime(n);
|
|
if n<=4 then return n in [2,3]; end if;
|
|
if n mod 2=0 or n mod 3=0 then return False; end if;
|
|
loop init d := 5; while d*d <= n do
|
|
if n mod d=0 then return false; end if;
|
|
d +:= 2;
|
|
if n mod d=0 then return false; end if;
|
|
d +:= 4;
|
|
end loop;
|
|
return True;
|
|
end proc;
|
|
|
|
proc commatize(n);
|
|
if n<1000 then return str n; end if;
|
|
p := "00" + str(n mod 1000);
|
|
return commatize(n div 1000) + "," + p(#p-2..#p);
|
|
end proc;
|
|
end program;
|