Amicable pairs: Difference between revisions

Add MAD
m (→‎version 2, using SIGMA function: changed bases for faster timings.)
(Add MAD)
Line 2,142:
17296 18416
</pre>
 
=={{header|MAD}}==
 
<lang MAD> NORMAL MODE IS INTEGER
DIMENSION DIVS(20000)
PRINT COMMENT $ AMICABLE PAIRS$
R CALCULATE SUM OF DIVISORS OF N
INTERNAL FUNCTION(N)
ENTRY TO DIVSUM.
DS = 0
THROUGH SUMMAT, FOR DIVC=1, 1, DIVC.GE.N
SUMMAT WHENEVER N/DIVC*DIVC.E.N, DS = DS+DIVC
FUNCTION RETURN DS
END OF FUNCTION
R CALCULATE SUM OF DIVISORS FOR ALL NUMBERS 1..20000
THROUGH MEMO, FOR I=1, 1, I.GE.20000
MEMO DIVS(I) = DIVSUM.(I)
 
R FIND ALL MATCHING PAIRS
THROUGH CHECK, FOR I=1, 1, I.GE.20000
THROUGH CHECK, FOR J=1, 1, J.GE.I
CHECK WHENEVER DIVS(I).E.J .AND. DIVS(J).E.I,
0 PRINT FORMAT AMI,I,J
VECTOR VALUES AMI = $I6,I6*$
END OF PROGRAM</lang>
 
{{out}}
 
<pre>AMICABLE PAIRS
284 220
1210 1184
2924 2620
5564 5020
6368 6232
10856 10744
14595 12285
18416 17296
</pre>
 
 
=={{header|Maple}}==
2,125

edits