Sequence of primes by trial division: Difference between revisions
Content added Content deleted
(Added PL/I-80 example) |
No edit summary |
||
Line 2,190: | Line 2,190: | ||
<pre>2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 |
<pre>2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 |
||
53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149</pre> |
53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149</pre> |
||
=={{header|M2000 Interpreter}}== |
|||
<syntaxhighlight lang="m2000 interpreter"> |
|||
Module primes_by_trial_division{ |
|||
inventory Known1=2@, 3@ |
|||
Global IsPrime=lambda Known1 (x as decimal) -> { |
|||
=0=1 |
|||
if exist(Known1, x) then =1=1 : exit |
|||
if x<=5 OR frac(x) then {if x == 2 OR x == 3 OR x == 5 then Append Known1, x : =1=1 |
|||
Break} |
|||
if frac(x/2) else exit |
|||
if frac(x/3) else exit |
|||
x1=sqrt(x):d = 5@ |
|||
{if frac(x/d ) else exit |
|||
d += 2: if d>x1 then Append Known1, x : =1=1 : exit |
|||
if frac(x/d) else exit |
|||
d += 4: if d<= x1 else Append Known1, x : =1=1: exit |
|||
loop} |
|||
} |
|||
takePrimes=lambda IsPrime, i=2 (n)-> { |
|||
flush |
|||
while n>0: if isPrime(i) then data i: n-- |
|||
i++:end while |
|||
=array([]) |
|||
} |
|||
Report "["+takePrimes(10)#str$(", ")+"]" |
|||
m=takePrimes(90) // skip 90 primes |
|||
Report "["+takePrimes(100)#str$(", ")+"]" |
|||
} |
|||
primes_by_trial_division |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29] |
|||
[547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223] |
|||
</pre> |
|||
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
=={{header|Mathematica}} / {{header|Wolfram Language}}== |