6 lines
195 B
Text
6 lines
195 B
Text
factor n = factor 2 n with
|
|
factor k n = k : factor k (n div k) if n mod k == 0;
|
|
= if n>1 then [n] else [] if k*k>n;
|
|
= factor (k+1) n if k==2;
|
|
= factor (k+2) n otherwise;
|
|
end;
|