Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,29 @@
|
|||
on babbage(endDigits)
|
||||
-- Set up an incrementor to the amount in front of the given end digits.
|
||||
if (endDigits's class is text) then
|
||||
set increment to 10 ^ (count endDigits) div 1
|
||||
else
|
||||
set increment to 10
|
||||
repeat until (increment > endDigits)
|
||||
set increment to increment * 10
|
||||
end repeat
|
||||
end if
|
||||
-- I postulate that if no square ending with the given digits is found with less than
|
||||
-- twice that many digits, then no such square exists; but I can't be certain. :)
|
||||
set limit to increment * (increment div 10)
|
||||
-- In any case, AppleScript's precision limit is 1.0E+15.
|
||||
if (limit > 1.0E+15) then return missing value
|
||||
-- Test successive values ending with the digits until one is found
|
||||
-- to have an integer square root or the limit is exceeded.
|
||||
set testNumber to endDigits div 1
|
||||
set squareRoot to testNumber ^ 0.5
|
||||
repeat until ((squareRoot mod 1 = 0) or (testNumber > limit))
|
||||
set testNumber to testNumber + increment
|
||||
set squareRoot to testNumber ^ 0.5
|
||||
end repeat
|
||||
|
||||
if (testNumber > limit) then return missing value -- No such square.
|
||||
return {squareRoot as integer, testNumber} -- {integer, square ending with the digits}
|
||||
end babbage
|
||||
|
||||
return {babbage(269696), babbage("00609")}
|
||||
Loading…
Add table
Add a link
Reference in a new issue