27 lines
563 B
Text
27 lines
563 B
Text
$ include "seed7_05.s7i";
|
|
|
|
const func boolean: semiPrime (in var integer: n) is func
|
|
result
|
|
var boolean: isSemiPrime is TRUE;
|
|
local
|
|
var integer: p is 2;
|
|
var integer: f is 0;
|
|
begin
|
|
while f < 2 and p**2 <= n do
|
|
while n rem p = 0 do
|
|
n := n div p;
|
|
incr(f);
|
|
end while;
|
|
incr(p);
|
|
end while;
|
|
isSemiPrime := f + ord(n > 1) = 2;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
local
|
|
var integer: v is 0;
|
|
begin
|
|
for v range 1675 to 1680 do
|
|
writeln(v <& " -> " <& semiPrime(v));
|
|
end for;
|
|
end func;
|