Summarize primes: Difference between revisions

Added Forth solution
(Added Rust solution)
(Added Forth solution)
Line 97:
20 929 66463
21 953 70241
</pre>
 
=={{header|Forth}}==
{{works with|Gforth}}
<lang forth>: prime? ( n -- ? ) here + c@ 0= ;
: notprime! ( n -- ) here + 1 swap c! ;
 
: prime_sieve { n -- }
here n erase
0 notprime!
1 notprime!
n 4 > if
n 4 do i notprime! 2 +loop
then
3
begin
dup dup * n <
while
dup prime? if
n over dup * do
i notprime!
dup 2* +loop
then
2 +
repeat
drop ;
 
: main
0 0 { count sum }
." count prime sum" cr
100000 prime_sieve
1000 2 do
i prime? if
count 1+ to count
sum i + to sum
sum prime? if
." " count 3 .r ." " i 3 .r ." " sum 5 .r cr
then
then
loop ;
 
main
bye</lang>
 
{{out}}
<pre>
count prime sum
1 2 2
2 3 5
4 7 17
6 13 41
12 37 197
14 43 281
60 281 7699
64 311 8893
96 503 22039
100 541 24133
102 557 25237
108 593 28697
114 619 32353
122 673 37561
124 683 38921
130 733 43201
132 743 44683
146 839 55837
152 881 61027
158 929 66463
162 953 70241
</pre>
 
1,777

edits