RosettaCodeData/Task/Almost-prime/CLU/almost-prime.clu
2023-07-01 13:44:08 -04:00

30 lines
684 B
Text

kprime = proc (n,k: int) returns (bool)
f: int := 0
p: int := 2
while f<k & p*p<=n do
while n//p=0 do
n := n/p
f := f+1
end
p := p+1
end
if n>1 then f:=f+1 end
return(f=k)
end kprime
start_up = proc ()
po: stream := stream$primary_output()
for k: int in int$from_to(1,5) do
i: int := 2
c: int := 0
stream$puts(po, "k = " || int$unparse(k) || ":")
while c<10 do
if kprime(i,k) then
stream$putright(po, int$unparse(i), 4)
c := c+1
end
i := i+1
end
stream$putl(po, "")
end
end start_up