44 lines
769 B
Text
44 lines
769 B
Text
begin
|
|
|
|
comment - return a mod b;
|
|
integer function mod(a, b);
|
|
integer a, b;
|
|
begin
|
|
mod := a - (a/b) * b;
|
|
end;
|
|
|
|
comment - return 1 if n is semi-prime, otherwise 0;
|
|
integer function semiprime(n);
|
|
integer n;
|
|
begin
|
|
integer i, count;
|
|
count := 1;
|
|
i := 2;
|
|
while (i * i) <= n do
|
|
begin
|
|
if mod(n, i) = 0 then
|
|
begin
|
|
count := count + 1;
|
|
n := n / i;
|
|
end
|
|
else
|
|
i := i + 1;
|
|
end;
|
|
semiprime := (if count = 2 then 1 else 0);
|
|
end;
|
|
|
|
integer i, limit, found;
|
|
limit := 100;
|
|
found := 0;
|
|
for i := 3 step 1 until limit do
|
|
begin
|
|
if semiprime(i) = 1 then
|
|
begin
|
|
writeon(i);
|
|
found := found + 1;
|
|
if mod(found, 10) = 0 then write("");
|
|
end;
|
|
end;
|
|
write(found, " were found");
|
|
|
|
end
|