Data update
This commit is contained in:
parent
29a5eea0d4
commit
5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions
44
Task/Additive-primes/Modula-3/additive-primes.mod3
Normal file
44
Task/Additive-primes/Modula-3/additive-primes.mod3
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
MODULE AdditivePrimes EXPORTS Main;
|
||||
|
||||
IMPORT SIO,Fmt;
|
||||
|
||||
CONST
|
||||
Max = 500;
|
||||
|
||||
VAR
|
||||
Count:CARDINAL := 0;
|
||||
Prime:ARRAY[2..Max] OF BOOLEAN;
|
||||
|
||||
PROCEDURE DigitSum(N:CARDINAL):CARDINAL =
|
||||
BEGIN
|
||||
IF N < 10 THEN RETURN N
|
||||
ELSE RETURN (N MOD 10) + DigitSum(N DIV 10) END;
|
||||
END DigitSum;
|
||||
|
||||
PROCEDURE Sieve() =
|
||||
VAR J:CARDINAL;
|
||||
BEGIN
|
||||
FOR I := 2 TO Max DO Prime[I] := TRUE END;
|
||||
FOR I := 2 TO Max DIV 2 DO
|
||||
IF Prime[I] THEN
|
||||
J := I*2;
|
||||
WHILE J <= Max DO
|
||||
Prime[J] := FALSE;
|
||||
INC(J,I)
|
||||
END
|
||||
END
|
||||
END;
|
||||
END Sieve;
|
||||
|
||||
BEGIN
|
||||
Sieve();
|
||||
FOR N := 2 TO Max DO
|
||||
IF Prime[N] AND Prime[DigitSum(N)] THEN
|
||||
SIO.PutText(Fmt.F("%4s",Fmt.Int(N)));
|
||||
INC(Count);
|
||||
IF Count MOD 10 = 0 THEN SIO.Nl() END
|
||||
END
|
||||
END;
|
||||
SIO.PutText(Fmt.F("\nThere are %s additive primes less than %s.\n",
|
||||
Fmt.Int(Count),Fmt.Int(Max)));
|
||||
END AdditivePrimes.
|
||||
Loading…
Add table
Add a link
Reference in a new issue