Amicable pairs: Difference between revisions

Add Cowgol
(Add PL/M)
(Add Cowgol)
Line 851:
<pre>((220 284) (1184 1210) (2620 2924) (5020 5564) (6232 6368) (10744 10856)
(12285 14595) (17296 18416))</pre>
 
=={{header|Cowgol}}==
<lang cowgol>include "cowgol.coh";
 
const LIMIT := 20000;
 
# Calculate sums of proper divisors
var divSum: uint16[LIMIT + 1];
var i: @indexof divSum;
var j: @indexof divSum;
 
i := 2;
while i <= LIMIT loop
divSum[i] := 1;
i := i + 1;
end loop;
 
i := 2;
while i <= LIMIT/2 loop
j := i * 2;
while j <= LIMIT loop
divSum[j] := divSum[j] + i;
j := j + i;
end loop;
i := i + 1;
end loop;
 
# Test each pair
i := 2;
while i <= LIMIT loop
j := i + 1;
while j <= LIMIT loop
if divSum[i] == j and divSum[j] == i then
print_i32(i as uint32);
print(", ");
print_i32(j as uint32);
print_nl();
end if;
j := j + 1;
end loop;
i := i + 1;
end loop;</lang>
{{out}}
<pre>220, 284
1184, 1210
2620, 2924
5020, 5564
6232, 6368
10744, 10856
12285, 14595
17296, 18416</pre>
 
=={{header|Crystal}}==
2,125

edits