(* Alkulukuja etsiessä tehdään seuraavat oletukset:
Testataan vain parittomia, koska parilliset luvut jakaantuvat aina
tasan kahteen. Näin ne eivät voi olla alkulukuja.
Edellisestä seuraa, että testattavat luvut eivät voi olla jaollisia
parillisilla luvuilla. Jakajina käytetään siis vain parittomia
lukuja.
Suuri osa parittomista luvuista on jakautuu tekijöihin. Luvun pienin jakamaton
tekijä on alkuluku. Siksi käytetään jakajina vain jo löydettyjä alkulukuja.
Yhteenveto: Ellei testattava ykköstä suurempi pariton kokonaisluku ole
jaollinen ykköstä suuremmalla alkuluvulla, se on itse alkuluku.
*)
global results
on run
set i to 1
set results to {3}
repeat 300 times
set i to i + 2
if theTest(i) is true then
set results to results & i
end if
end repeat
set theResults to 1 & 2 & results
end run
on theTest(i)
repeat with j in results
set division to i / j
try
set division to division as integer
return false
exit repeat
on error
-- jakolaskun tulos ei ollut kokonaisluku,
-- eli testattava ei ole jaollinen löydetyillä alkuluvuilla
end try
end repeat
return true
end theTest
(*
Kirjoittaja ei ole perehtynyt matematiikkaan eikä ohjelmointiin, ja on
jo perillä nopeammista tavoista laskea alkulukuja AppleScriptin avulla.
Skripti kuitenkin julkaistaan tässä, koska se edustaa omaperäistä ajattelua.
Pyörä voidaan keksiä aina uudelleen vaikkapa omaksi iloksi.
*)