Aliquot sequence classifications: Difference between revisions

→‎{{header|zkl}}: additional solution
(Added Ruby)
(→‎{{header|zkl}}: additional solution)
Line 654:
fcn aliquot(k){ //-->Walker
Walker(fcn(rk){ k:=rk.value; if(k)rk.set(properDivs(k).sum()); k }.fp(Ref(k)))
}(10).walk(15).println();</lang>
Or, refactoring to remove saving the intermediate divisors (and adding white space):
 
<lang zkl>fcn classifyaliquot(k){ //-->Walker
Walker(fcn(rk){
k:=rk.value;
rk.set((1).reduce((k + 1)/2, fcn(s,n,k){
s + (k%n==0 and k!=n and n) // s + False == s + 0
},0,k));
k
}.fp(Ref(k)))
}(10).walk(15).println();</lang>
<lang zkl>fcn classify(k){
const MAX=(2).pow(47);
ak,aks:=aliquot(k), ak.walk(16);
Line 708 ⟶ 717:
1488 is non-terminating L(1488,2480,3472,4464,8432,9424,10416,21328,22320,55056,95728,96720,236592,459792,881392,882384)
</pre>
The loop to calculate 15355717786080 takes forever (literally)
Anonymous user