Jump to content

Strange unique prime triplets: Difference between revisions

Added Forth solution
(Added Swift solution, minor edit to C++ code)
(Added Forth solution)
Line 392:
 
Found 241,580 strange prime triplets with n, m, p < 1,000.
</pre>
 
=={{header|Forth}}==
{{works with|Gforth}}
<lang forth>: prime? ( n -- ? ) here + c@ 0= ;
: notprime! ( n -- ) here + 1 swap c! ;
 
: prime_sieve ( n -- )
here over erase
1 notprime!
dup 0 do i notprime! 2 +loop
3
begin
2dup dup * >
while
dup prime? if
2dup dup * do
i notprime!
dup 2* +loop
then
2 +
repeat
2drop ;
 
: print_strange_unique_prime_triplets ( n -- )
dup 8 < if drop exit then
dup 3 * prime_sieve
dup 4 - 3 do
i prime? if
dup 2 - i 2 + do
i prime? if
dup i 2 + do
i prime? if
i j k + + dup prime? if
k 2 .r ." + " j 2 .r ." + " i 2 .r ." = " 2 .r cr
else
drop
then
then
2 +loop
then
2 +loop
then
2 +loop drop ;
 
: count_strange_unique_prime_triplets ( n -- n )
dup 8 < if drop 0 exit then
dup 3 * prime_sieve
0 swap
dup 4 - 3 do
i prime? if
dup 2 - i 2 + do
i prime? if
dup i 2 + do
i prime? if
i j k + + prime? if
swap 1+ swap
then
then
2 +loop
then
2 +loop
then
2 +loop drop ;
 
." Strange unique prime triplets < 30:" cr
30 print_strange_unique_prime_triplets
 
." Count of strange unique prime triplets < 1000: "
1000 count_strange_unique_prime_triplets . cr
bye</lang>
 
{{out}}
<pre>
Strange unique prime triplets < 30:
3 + 5 + 11 = 19
3 + 5 + 23 = 31
3 + 5 + 29 = 37
3 + 7 + 13 = 23
3 + 7 + 19 = 29
3 + 11 + 17 = 31
3 + 11 + 23 = 37
3 + 11 + 29 = 43
3 + 17 + 23 = 43
5 + 7 + 11 = 23
5 + 7 + 17 = 29
5 + 7 + 19 = 31
5 + 7 + 29 = 41
5 + 11 + 13 = 29
5 + 13 + 19 = 37
5 + 13 + 23 = 41
5 + 13 + 29 = 47
5 + 17 + 19 = 41
5 + 19 + 23 = 47
5 + 19 + 29 = 53
7 + 11 + 13 = 31
7 + 11 + 19 = 37
7 + 11 + 23 = 41
7 + 11 + 29 = 47
7 + 13 + 17 = 37
7 + 13 + 23 = 43
7 + 17 + 19 = 43
7 + 17 + 23 = 47
7 + 17 + 29 = 53
7 + 23 + 29 = 59
11 + 13 + 17 = 41
11 + 13 + 19 = 43
11 + 13 + 23 = 47
11 + 13 + 29 = 53
11 + 17 + 19 = 47
11 + 19 + 23 = 53
11 + 19 + 29 = 59
13 + 17 + 23 = 53
13 + 17 + 29 = 59
13 + 19 + 29 = 61
17 + 19 + 23 = 59
19 + 23 + 29 = 71
Count of strange unique prime triplets < 1000: 241580
</pre>
 
1,777

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.