Chowla numbers: Difference between revisions
Content added Content deleted
(Added Algol 68) |
|||
Line 293: | Line 293: | ||
33550336 is a perfect number |
33550336 is a perfect number |
||
There are 5 perfect numbers < 350000000</pre> |
There are 5 perfect numbers < 350000000</pre> |
||
=={{header|ALGOL 68}}== |
|||
{{Trans|C}} |
|||
<lang algol68>BEGIN # find some Chowla numbers ( Chowla n = sum of divisors of n exclusing n and 1 ) # |
|||
# returs the Chowla number of n # |
|||
PROC chowla = ( INT n )INT: |
|||
BEGIN |
|||
INT sum := 0; |
|||
FOR i FROM 2 WHILE i * i <= n DO |
|||
IF n MOD i = 0 THEN |
|||
INT j = n OVER i; |
|||
sum +:= i + IF i = j THEN 0 ELSE j FI |
|||
FI |
|||
OD; |
|||
sum |
|||
END # chowla # ; |
|||
FOR n TO 37 DO print( ( "chowla(", whole( n, 0 ), ") = ", whole( chowla( n ), 0 ), newline ) ) OD; |
|||
INT count := 0, power := 100; |
|||
FOR n FROM 2 TO 10 000 000 DO |
|||
IF chowla( n ) = 0 THEN count +:= 1 FI; |
|||
IF n MOD power = 0 THEN |
|||
print( ( "There are ", whole( count, 0 ), " primes < ", whole( power, 0 ), newline ) ); |
|||
power *:= 10 |
|||
FI |
|||
OD; |
|||
count := 0; |
|||
INT limit = 350 000 000; |
|||
INT k := 2, kk := 3; |
|||
WHILE INT p = k * kk; |
|||
p <= limit |
|||
DO |
|||
IF chowla( p ) = p - 1 THEN |
|||
print( ( whole( p, 0 ), " is a perfect number", newline ) ); |
|||
count +:= 1 |
|||
FI; |
|||
k := kk + 1; kk +:= k |
|||
OD; |
|||
print( ( "There are ", whole( count, 0 ), " perfect numbers < ", whole( limit, 0 ), newline ) ) |
|||
END</lang> |
|||
{{out}} |
|||
<pre> |
|||
chowla(1) = 0 |
|||
chowla(2) = 0 |
|||
chowla(3) = 0 |
|||
chowla(4) = 2 |
|||
chowla(5) = 0 |
|||
chowla(6) = 5 |
|||
chowla(7) = 0 |
|||
chowla(8) = 6 |
|||
chowla(9) = 3 |
|||
chowla(10) = 7 |
|||
chowla(11) = 0 |
|||
chowla(12) = 15 |
|||
chowla(13) = 0 |
|||
chowla(14) = 9 |
|||
chowla(15) = 8 |
|||
chowla(16) = 14 |
|||
chowla(17) = 0 |
|||
chowla(18) = 20 |
|||
chowla(19) = 0 |
|||
chowla(20) = 21 |
|||
chowla(21) = 10 |
|||
chowla(22) = 13 |
|||
chowla(23) = 0 |
|||
chowla(24) = 35 |
|||
chowla(25) = 5 |
|||
chowla(26) = 15 |
|||
chowla(27) = 12 |
|||
chowla(28) = 27 |
|||
chowla(29) = 0 |
|||
chowla(30) = 41 |
|||
chowla(31) = 0 |
|||
chowla(32) = 30 |
|||
chowla(33) = 14 |
|||
chowla(34) = 19 |
|||
chowla(35) = 12 |
|||
chowla(36) = 54 |
|||
chowla(37) = 0 |
|||
There are 25 primes < 100 |
|||
There are 168 primes < 1000 |
|||
There are 1229 primes < 10000 |
|||
There are 9592 primes < 100000 |
|||
There are 78498 primes < 1000000 |
|||
There are 664579 primes < 10000000 |
|||
6 is a perfect number |
|||
28 is a perfect number |
|||
496 is a perfect number |
|||
8128 is a perfect number |
|||
33550336 is a perfect number |
|||
There are 5 perfect numbers < 350000000 |
|||
</pre> |
|||
=={{header|Arturo}}== |
=={{header|Arturo}}== |