Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,69 @@
|
|||
on aliquotSum(n)
|
||||
if (n < 2) then return 0
|
||||
set sum to 1
|
||||
set sqrt to n ^ 0.5
|
||||
set limit to sqrt div 1
|
||||
if (limit = sqrt) then
|
||||
set sum to sum + limit
|
||||
set limit to limit - 1
|
||||
end if
|
||||
repeat with i from 2 to limit
|
||||
if (n mod i is 0) then set sum to sum + i + n div i
|
||||
end repeat
|
||||
|
||||
return sum
|
||||
end aliquotSum
|
||||
|
||||
on aliquotSequence(k, maxLength, maxN)
|
||||
-- Generate the sequence within the specified limitations.
|
||||
set sequence to {k}
|
||||
set n to k
|
||||
repeat (maxLength - 1) times
|
||||
set n to aliquotSum(n)
|
||||
set repetition to (sequence contains n)
|
||||
if (repetition) then exit repeat
|
||||
set end of sequence to n
|
||||
if ((n = 0) or (n > maxN)) then exit repeat
|
||||
end repeat
|
||||
-- Analyse it.
|
||||
set sequenceLength to (count sequence)
|
||||
if (sequenceLength is 1) then
|
||||
set classification to "perfect"
|
||||
else if (n is 0) then
|
||||
set classification to "terminating"
|
||||
else if (n = k) then
|
||||
if (sequenceLength is 2) then
|
||||
set classification to "amicable"
|
||||
else
|
||||
set classification to "sociable"
|
||||
end if
|
||||
else if (repetition) then
|
||||
if (sequence ends with n) then
|
||||
set classification to "aspiring"
|
||||
else
|
||||
set classification to "cyclic"
|
||||
end if
|
||||
else
|
||||
set classification to "non-terminating"
|
||||
end if
|
||||
|
||||
return {sequence:sequence, classification:classification}
|
||||
end aliquotSequence
|
||||
|
||||
-- Task code:
|
||||
local output, maxLength, maxN, spacing, astid, k
|
||||
set output to {""}
|
||||
set {maxLength, maxN} to {16, 2 ^ 47}
|
||||
set spacing to " "
|
||||
set astid to AppleScript's text item delimiters
|
||||
set AppleScript's text item delimiters to ", "
|
||||
repeat with k in {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ¬
|
||||
11, 12, 28, 496, 220, 1184, 12496, 1264460, 790, 909, 562, 1064, 1488, 1.535571778608E+13}
|
||||
set thisResult to aliquotSequence(k's contents, maxLength, maxN)
|
||||
set end of output to text -18 thru -1 of (spacing & k) & ": " & ¬
|
||||
text 1 thru 17 of (thisResult's classification & spacing) & thisResult's sequence
|
||||
end repeat
|
||||
set AppleScript's text item delimiters to linefeed
|
||||
set output to output as text
|
||||
set AppleScript's text item delimiters to astid
|
||||
return output
|
||||
Loading…
Add table
Add a link
Reference in a new issue