Amicable pairs: Difference between revisions

added ReScript
(added OCaml)
(added ReScript)
Line 5,228:
12285 14595
17296 18416
</pre>
 
=={{header|ReScript}}==
<lang rescript>let isqrt = (v) => {
Belt.Float.toInt(
sqrt(Belt.Int.toFloat(v)))
}
 
let sum_divs = (n) => {
let sum = ref(1)
for d in 2 to isqrt(n) {
if mod(n, d) == 0 { sum.contents = sum.contents + (n / d + d) }
}
sum.contents
}
 
{
for n in 2 to 20000 {
let m = sum_divs(n)
if (m > n) {
if sum_divs(m) == n { Printf.printf("%d %d\n", n, m) }
}
}
}
</lang>
{{output}}
<pre>
$ bsc ampairs.res > ampairs.bs.js
$ node ampairs.bs.js
220 284
1184 1210
2620 2924
5020 5564
6232 6368
10744 10856
12285 14595
17296 18416
</pre>