Product of min and max prime factors: Difference between revisions
Content added Content deleted
m (→{{header|J}}) |
(Added AppleScript.) |
||
Line 66: | Line 66: | ||
91 46 93 94 95 6 9409 14 33 10 |
91 46 93 94 95 6 9409 14 33 10 |
||
</pre> |
</pre> |
||
=={{header|AppleScript}}== |
|||
<syntaxhighlight lang="applescript">on isPrime(n) |
|||
if (n < 4) then return (n > 1) |
|||
if ((n mod 2 is 0) or (n mod 3 is 0)) then return false |
|||
repeat with i from 5 to (n ^ 0.5) div 1 by 6 |
|||
if ((n mod i is 0) or (n mod (i + 2) is 0)) then return false |
|||
end repeat |
|||
return true |
|||
end isPrime |
|||
on productOfMinAndMaxPrimeFactors(n) |
|||
if ((isPrime(n)) or (n is 1)) then return n * n |
|||
set output to {} |
|||
repeat with i from (n ^ 0.5 div 1) to 2 by -1 |
|||
if (n mod i is 0) then |
|||
if (isPrime(i)) then set output's beginning to i |
|||
if (isPrime(n div i)) then set output's end to n div i |
|||
end if |
|||
end repeat |
|||
return (output's beginning) * (output's end) |
|||
end productOfMinAndMaxPrimeFactors |
|||
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 |
|||
on demo() |
|||
set output to {""} |
|||
set thisLine to {} |
|||
repeat with n from 1 to 100 |
|||
set thisLine's end to text -6 thru -1 of (" " & productOfMinAndMaxPrimeFactors(n)) |
|||
if (n mod 10 is 0) then |
|||
set output's end to join(thisLine, "") |
|||
set thisLine to {} |
|||
end if |
|||
end repeat |
|||
return join(output, linefeed) |
|||
end demo |
|||
demo()</syntaxhighlight> |
|||
{{output}} |
|||
<syntaxhighlight lang="applescript">" |
|||
1 4 9 4 25 6 49 4 9 10 |
|||
121 6 169 14 15 4 289 6 361 10 |
|||
21 22 529 6 25 26 9 14 841 10 |
|||
961 4 33 34 35 6 1369 38 39 10 |
|||
1681 14 1849 22 15 46 2209 6 49 10 |
|||
51 26 2809 6 55 14 57 58 3481 10 |
|||
3721 62 21 4 65 22 4489 34 69 14 |
|||
5041 6 5329 74 15 38 77 26 6241 10 |
|||
9 82 6889 14 85 86 87 22 7921 10 |
|||
91 46 93 94 95 6 9409 14 33 10"</syntaxhighlight> |
|||
=={{header|BASIC}}== |
=={{header|BASIC}}== |