Attractive numbers: Difference between revisions
Content added Content deleted
(Added Common Lisp) |
Not a robot (talk | contribs) (Add Modula-2) |
||
Line 2,079: | Line 2,079: | ||
{{out}} |
{{out}} |
||
<pre>{4,6,8,9,10,12,14,15,18,20,21,22,25,26,27,28,30,32,33,34,35,38,39,42,44,45,46,48,49,50,51,52,55,57,58,62,63,65,66,68,69,70,72,74,75,76,77,78,80,82,85,86,87,91,92,93,94,95,98,99,102,105,106,108,110,111,112,114,115,116,117,118,119,120}</pre> |
<pre>{4,6,8,9,10,12,14,15,18,20,21,22,25,26,27,28,30,32,33,34,35,38,39,42,44,45,46,48,49,50,51,52,55,57,58,62,63,65,66,68,69,70,72,74,75,76,77,78,80,82,85,86,87,91,92,93,94,95,98,99,102,105,106,108,110,111,112,114,115,116,117,118,119,120}</pre> |
||
=={{header|Modula-2}}== |
|||
<lang modula2>MODULE AttractiveNumbers; |
|||
FROM InOut IMPORT WriteCard, WriteLn; |
|||
CONST |
|||
Max = 120; |
|||
VAR |
|||
n, col: CARDINAL; |
|||
Prime: ARRAY [1..Max] OF BOOLEAN; |
|||
PROCEDURE Sieve; |
|||
VAR i, j: CARDINAL; |
|||
BEGIN |
|||
Prime[1] := FALSE; |
|||
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; |
|||
j := j + i; |
|||
END; |
|||
END; |
|||
END; |
|||
END Sieve; |
|||
PROCEDURE Factors(n: CARDINAL): CARDINAL; |
|||
VAR i, factors: CARDINAL; |
|||
BEGIN |
|||
factors := 0; |
|||
FOR i := 2 TO Max DO |
|||
IF i > n THEN |
|||
RETURN factors; |
|||
END; |
|||
IF Prime[i] THEN |
|||
WHILE n MOD i = 0 DO |
|||
n := n DIV i; |
|||
factors := factors + 1; |
|||
END; |
|||
END; |
|||
END; |
|||
RETURN factors; |
|||
END Factors; |
|||
BEGIN |
|||
Sieve(); |
|||
col := 0; |
|||
FOR n := 2 TO Max DO |
|||
IF Prime[Factors(n)] THEN |
|||
WriteCard(n, 4); |
|||
col := col + 1; |
|||
IF col MOD 15 = 0 THEN |
|||
WriteLn(); |
|||
END; |
|||
END; |
|||
END; |
|||
WriteLn(); |
|||
END AttractiveNumbers.</lang> |
|||
{{out}} |
|||
<pre> 4 6 8 9 10 12 14 15 18 20 21 22 25 26 27 |
|||
28 30 32 33 34 35 38 39 42 44 45 46 48 49 50 |
|||
51 52 55 57 58 62 63 65 66 68 69 70 72 74 75 |
|||
76 77 78 80 82 85 86 87 91 92 93 94 95 98 99 |
|||
102 105 106 108 110 111 112 114 115 116 117 118 119 120</pre> |
|||
=={{header|Nanoquery}}== |
=={{header|Nanoquery}}== |