blob: 7dbd151935bbf956802690d6bc5a908b6d9419d4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
MODULE Ch2;
IMPORT Out;
PROCEDURE IsPrime(N:INTEGER):BOOLEAN;
VAR I:INTEGER;
BEGIN
I := 5;
IF (N = 2) OR (N = 3) THEN RETURN TRUE END;
IF (N <= 1) OR (N MOD 2 = 0) OR (N MOD 3 = 0) THEN RETURN FALSE END;
WHILE I * I <= N DO
IF (N MOD I = 0) OR (N MOD (I+2) = 0) THEN RETURN FALSE END;
INC(I,6);
END;
RETURN TRUE;
END IsPrime;
PROCEDURE PrimeCount(N:INTEGER):INTEGER;
VAR I,Count:INTEGER;
BEGIN
Count := 0;
FOR I := 1 TO N-1 DO
IF IsPrime(I) THEN INC(Count) END;
END;
RETURN Count;
END PrimeCount;
BEGIN
Out.Int(PrimeCount(10),0); Out.Ln;
Out.Int(PrimeCount(15),0); Out.Ln;
Out.Int(PrimeCount(1),0); Out.Ln;
Out.Int(PrimeCount(25),0); Out.Ln;
END Ch2.
|