function kprime(integer n, integer k) -- -- returns true if n has exactly k factors -- -- p is a "pseudo prime" in that 2,3,4,5,6,7,8,9,10,11 will behave -- exactly like 2,3,5,7,11, ie the remainder(n,4)=0 (etc) will never -- succeed because remainder(n,2) would have succeeded twice first. -- Hence for larger n consider replacing p+=1 with p=next_prime(), -- then again, on "" this performs an obscene number of divisions.. -- integer p = 2, factors = 0 while factors1) return factors==k end function procedure almost_primeC() integer nextkprime, count for k=1 to 5 do printf(1,"k = %d: ", k); nextkprime = 2 count = 0 while count<10 do if kprime(nextkprime, k) then printf(1," %4d", nextkprime) count += 1 end if nextkprime += 1 end while puts(1,"\n") end for if getc(0) then end if end procedure almost_primeC()