Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
|
|
@ -0,0 +1,64 @@
|
|||
on isArithmetic(n)
|
||||
if (n < 4) then
|
||||
if (n < 0) then return {arithmetic:false, composite:missing value}
|
||||
return {arithmetic:(n mod 2 = 1), composite:false}
|
||||
end if
|
||||
set factorSum to 1 + n
|
||||
set factorCount to 2
|
||||
set sqrt to n ^ 0.5
|
||||
set limit to sqrt div 1
|
||||
if (limit = sqrt) then
|
||||
set factorSum to factorSum + limit
|
||||
set factorCount to 3
|
||||
set limit to limit - 1
|
||||
end if
|
||||
repeat with i from 2 to limit
|
||||
if (n mod i = 0) then
|
||||
set factorSum to factorSum + i + n div i
|
||||
set factorCount to factorCount + 2
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return {arithmetic:(factorSum mod factorCount = 0), composite:(factorCount > 2)}
|
||||
end isArithmetic
|
||||
|
||||
on task()
|
||||
set output to {linefeed & "The first 100 arithmetic numbers are:"}
|
||||
set {n, hitCount, compositeCount, pad} to {0, 0, 0, " "}
|
||||
repeat 10 times
|
||||
set row to {}
|
||||
set targetCount to hitCount + 10
|
||||
repeat until (hitCount = targetCount)
|
||||
set n to n + 1
|
||||
tell isArithmetic(n) to if (its arithmetic) then
|
||||
set hitCount to hitCount + 1
|
||||
if (its composite) then set compositeCount to compositeCount + 1
|
||||
set row's end to text -4 thru -1 of (pad & n)
|
||||
end if
|
||||
end repeat
|
||||
set output's end to join(row, "")
|
||||
end repeat
|
||||
repeat with targetCount in {1000, 10000, 100000, 1000000}
|
||||
repeat while (hitCount < targetCount)
|
||||
set n to n + 1
|
||||
tell isArithmetic(n) to if (its arithmetic) then
|
||||
set hitCount to hitCount + 1
|
||||
if (its composite) then set compositeCount to compositeCount + 1
|
||||
end if
|
||||
end repeat
|
||||
set output's end to (linefeed & "The " & targetCount & "th arithmetic number is " & n) & ¬
|
||||
(linefeed & "(" & compositeCount & " composite numbers up to here)")
|
||||
end repeat
|
||||
|
||||
return join(output, linefeed)
|
||||
end task
|
||||
|
||||
on join(lst, delim)
|
||||
set astid to AppleScript's text item delimiters
|
||||
set AppleScript's text item delimiters to delim
|
||||
set txt to lst as text
|
||||
set AppleScript's text item delimiters to astid
|
||||
return txt
|
||||
end join
|
||||
|
||||
task()
|
||||
Loading…
Add table
Add a link
Reference in a new issue