37 lines
1 KiB
Text
37 lines
1 KiB
Text
begin
|
|
logical procedure kPrime( integer value nv, k ) ;
|
|
begin
|
|
integer p, f, n;
|
|
n := nv;
|
|
f := 0;
|
|
while f <= k and not odd( n ) do begin
|
|
n := n div 2;
|
|
f := f + 1
|
|
end while_not_odd_n ;
|
|
p := 3;
|
|
while f <= k and p * p <= n do begin
|
|
while n rem p = 0 do begin
|
|
n := n div p;
|
|
f := f + 1
|
|
end while_n_rem_p_eq_0 ;
|
|
p := p + 2
|
|
end while_f_le_k_and_p_is_a_factor ;
|
|
if n > 1 then f := f + 1;
|
|
f = k
|
|
end kPrime ;
|
|
begin
|
|
for k := 1 until 5 do begin
|
|
integer c, i;
|
|
write( i_w := 1, s_w := 0, "k = ", k , ": " );
|
|
c := 0;
|
|
i := 2;
|
|
while c < 10 do begin
|
|
if kPrime( i, k ) then begin
|
|
writeon( i_w := 3, s_w := 0, " ", i );
|
|
c := c + 1
|
|
end if_kPrime_i_k ;
|
|
i := i + 1
|
|
end while_c_lt_10
|
|
end for_k
|
|
end
|
|
end.
|