Aliquot sequence classifications: Difference between revisions
Content added Content deleted
m (→{{header|Fortran}}: Remove leading spaces: confusion over layout.) |
(Added Mathematica) |
||
Line 551: | Line 551: | ||
1488 => Non-terminating, [1488,2480,3472,4464,8432,9424,10416,21328,22320,55056,95728,96720,236592,459792,881392,882384,1474608,2461648] |
1488 => Non-terminating, [1488,2480,3472,4464,8432,9424,10416,21328,22320,55056,95728,96720,236592,459792,881392,882384,1474608,2461648] |
||
</pre> |
</pre> |
||
=={{header|Mathematica}}== |
|||
<lang Mathematica>seq[n_] := |
|||
NestList[If[# == 0, 0, |
|||
DivisorSum[#, # &, Function[div, div != #]]] &, n, 16]; |
|||
class[seq_] := |
|||
Which[Length[seq] < 2, "Non-terminating", MemberQ[seq, 0], |
|||
"Terminating", seq[[1]] == seq[[2]], "Perfect", |
|||
Length[seq] > 2 && seq[[1]] == seq[[3]], "Amicable", |
|||
Length[seq] > 3 && MemberQ[seq[[4 ;;]], seq[[1]]], "Sociable", |
|||
MatchQ[class[Rest[seq]], "Perfect" | "Aspiring"], "Aspiring", |
|||
MatchQ[class[Rest[seq]], "Amicable" | "Sociable" | "Cyclic"], |
|||
"Cyclic", True, "Non-terminating"]; |
|||
notate[seq_] := |
|||
Which[seq == {}, {}, |
|||
MemberQ[Rest[seq], |
|||
seq[[1]]], {Prepend[TakeWhile[Rest[seq], # != seq[[1]] &], |
|||
seq[[1]]]}, True, Prepend[notate[Rest[seq]], seq[[1]]]]; |
|||
Print[{#, class[seq[#]], notate[seq[#]] /. {0} -> 0}] & /@ {1, 2, 3, 4, 5, 6, 7, |
|||
8, 9, 10, 11, 12, 28, 496, 220, 1184, 12496, 1264460, 790, 909, |
|||
562, 1064, 1488, 15355717786080};</lang> |
|||
{{out}} |
|||
<pre>{1, Terminating, {1, 0}} |
|||
{2, Terminating, {2, 1, 0}} |
|||
{3, Terminating, {3, 1, 0}} |
|||
{4, Terminating, {4, 3, 1, 0}} |
|||
{5, Terminating, {5, 1, 0}} |
|||
{6, Perfect, {{6}}} |
|||
{7, Terminating, {7, 1, 0}} |
|||
{8, Terminating, {8, 7, 1, 0}} |
|||
{9, Terminating, {9, 4, 3, 1, 0}} |
|||
{10, Terminating, {10, 8, 7, 1, 0}} |
|||
{11, Terminating, {11, 1, 0}} |
|||
{12, Terminating, {12, 16, 15, 9, 4, 3, 1, 0}} |
|||
{28, Perfect, {{28}}} |
|||
{496, Perfect, {{496}}} |
|||
{220, Amicable, {{220, 284}}} |
|||
{1184, Amicable, {{1184, 1210}}} |
|||
{12496, Sociable, {{12496, 14288, 15472, 14536, 14264}}} |
|||
{1264460, Sociable, {{1264460, 1547860, 1727636, 1305184}}} |
|||
{790, Aspiring, {790, 650, 652, {496}}} |
|||
{909, Aspiring, {909, 417, 143, 25, {6}}} |
|||
{562, Cyclic, {562, {284, 220}}} |
|||
{1064, Cyclic, {1064, 1336, {1184, 1210}}} |
|||
{1488, Non-terminating, {1488, 2480, 3472, 4464, 8432, 9424, 10416, 21328, 22320, 55056, 95728, 96720, 236592, 459792, 881392, 882384, 1474608}} |
|||
{15355717786080, Non-terminating, {15355717786080, 44534663601120, 144940087464480, 471714103310688, 1130798979186912, 2688948041357088, 6050151708497568, 13613157922639968, 35513546724070632, 74727605255142168, 162658586225561832, 353930992506879768, 642678347124409032, 1125102611548462968, 1977286128289819992, 3415126495450394808, 7156435369823219592}}</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |