RosettaCodeData/Task/Chowla-numbers/MAD/chowla-numbers.mad
2023-07-01 13:44:08 -04:00

51 lines
1.6 KiB
Text

NORMAL MODE IS INTEGER
INTERNAL FUNCTION(N)
ENTRY TO CHOWLA.
SUM = 0
THROUGH LOOP, FOR I=2, 1, I*I.G.N
J = N/I
WHENEVER J*I.E.N
SUM = SUM + I
WHENEVER I.NE.J, SUM = SUM + J
END OF CONDITIONAL
LOOP CONTINUE
FUNCTION RETURN SUM
END OF FUNCTION
VECTOR VALUES CHWFMT = $7HCHOWLA(,I2,4H) = ,I2*$
THROUGH CH37, FOR CH=1, 1, CH.G.37
CH37 PRINT FORMAT CHWFMT, CH, CHOWLA.(CH)
VECTOR VALUES PRIMES =
0 $10HTHERE ARE ,I6,S1,13HPRIMES BELOW ,I8*$
POWER = 100
COUNT = 0
THROUGH PRM, FOR CH=2, 1, CH.G.10000000
WHENEVER CHOWLA.(CH).E.0, COUNT = COUNT + 1
WHENEVER (CH/POWER)*POWER.E.CH
PRINT FORMAT PRIMES, COUNT, POWER
POWER = POWER * 10
PRM END OF CONDITIONAL
COUNT = 0
LIMIT = 35000000
VECTOR VALUES PERFCT = $I8,S1,20HIS A PERFECT NUMBER.*$
VECTOR VALUES PRFCNT =
0 $10HTHERE ARE ,I1,S1,22HPERFECT NUMBERS BELOW ,I8*$
K = 2
KK = 3
LOOP CH = K * KK
WHENEVER CH.G.LIMIT, TRANSFER TO DONE
WHENEVER CHOWLA.(CH).E.CH-1
PRINT FORMAT PERFCT, CH
COUNT = COUNT + 1
END OF CONDITIONAL
K = KK + 1
KK = KK + K
TRANSFER TO LOOP
DONE PRINT FORMAT PRFCNT, COUNT, LIMIT
END OF PROGRAM