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()
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
"
|
||||
The first 100 arithmetic numbers are:
|
||||
1 3 5 6 7 11 13 14 15 17
|
||||
19 20 21 22 23 27 29 30 31 33
|
||||
35 37 38 39 41 42 43 44 45 46
|
||||
47 49 51 53 54 55 56 57 59 60
|
||||
61 62 65 66 67 68 69 70 71 73
|
||||
77 78 79 83 85 86 87 89 91 92
|
||||
93 94 95 96 97 99 101 102 103 105
|
||||
107 109 110 111 113 114 115 116 118 119
|
||||
123 125 126 127 129 131 132 133 134 135
|
||||
137 138 139 140 141 142 143 145 147 149
|
||||
|
||||
The 1000th arithmetic number is 1361
|
||||
(782 composite numbers up to here)
|
||||
|
||||
The 10000th arithmetic number is 12953
|
||||
(8458 composite numbers up to here)
|
||||
|
||||
The 100000th arithmetic number is 125587
|
||||
(88219 composite numbers up to here)
|
||||
|
||||
The 1000000th arithmetic number is 1228663
|
||||
(905043 composite numbers up to here)"
|
||||
Loading…
Add table
Add a link
Reference in a new issue