Semiprime: Difference between revisions
Content added Content deleted
(Added Algol 68) |
(→{{header|ALGOL 68}}: bug fix) |
||
Line 66: | Line 66: | ||
FOR factor FROM 2 TO ENTIER sqrt( ABS n ) |
FOR factor FROM 2 TO ENTIER sqrt( ABS n ) |
||
WHILE IF n MOD factor = 0 THEN |
WHILE IF n MOD factor = 0 THEN |
||
factor count +:= 1 |
factor count +:= 1; |
||
# check the factor isn't a repeated factor # |
|||
IF n /= factor * factor THEN |
|||
# the factor isn't the square root # |
|||
INT other factor = n OVER factor; |
|||
IF other factor MOD factor = 0 THEN |
|||
# have a repeated factor # |
|||
factor count +:= 1 |
|||
FI |
|||
FI |
|||
FI; |
FI; |
||
factor count < 2 |
factor count < 2 |
||
Line 83: | Line 92: | ||
IF is semi prime( i ) THEN print( ( whole( i, 0 ), " " ) ) FI |
IF is semi prime( i ) THEN print( ( whole( i, 0 ), " " ) ) FI |
||
OD; |
OD; |
||
print( ( newline ) ) |
print( ( newline ) ) |
||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
semi primes below 100: 4 6 |
semi primes below 100: 4 6 9 10 14 15 21 22 25 26 33 34 35 38 39 46 49 51 55 57 58 62 65 69 74 77 82 85 86 87 91 93 94 95 |
||
semi primes below between 1670 and 1690: 1671 1673 1678 1679 1681 1685 1687 1689 |
semi primes below between 1670 and 1690: 1671 1673 1678 1679 1681 1685 1687 1689 |
||
</pre> |
</pre> |