28 lines
725 B
Text
28 lines
725 B
Text
program attractive_numbers;
|
|
numbers := [n in [2..120] | attractive(n)];
|
|
printtab(numbers, 20, 3);
|
|
|
|
proc printtab(list, cols, width);
|
|
lines := [list(k..cols+k-1) : k in [1, cols+1..#list]];
|
|
loop for line in lines do
|
|
print(+/[lpad(str item, width+1) : item in line]);
|
|
end loop;
|
|
end proc;
|
|
|
|
proc attractive(n);
|
|
return #factorize(#factorize(n)) = 1;
|
|
end proc;
|
|
|
|
proc factorize(n);
|
|
factors := [];
|
|
d := 2;
|
|
loop until d > n do
|
|
loop while n mod d = 0 do
|
|
factors with:= d;
|
|
n div:= d;
|
|
end loop;
|
|
d +:= 1;
|
|
end loop;
|
|
return factors;
|
|
end proc;
|
|
end program;
|