Sum of two adjacent numbers are primes: Difference between revisions

Content added Content deleted
m (syntax highlighting fixup automation)
Line 10: Line 10:
=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
{{libheader|ALGOL 68-primes}}
{{libheader|ALGOL 68-primes}}
<lang algol68>BEGIN # find the first 20 primes which are n + ( n + 1 ) for some n #
<syntaxhighlight lang="algol68">BEGIN # find the first 20 primes which are n + ( n + 1 ) for some n #
PR read "primes.incl.a68" PR # include prime utilities #
PR read "primes.incl.a68" PR # include prime utilities #
[]BOOL prime = PRIMESIEVE 200; # should be enough primes #
[]BOOL prime = PRIMESIEVE 200; # should be enough primes #
Line 22: Line 22:
FI
FI
OD
OD
END</lang>
END</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 47: Line 47:
</pre>
</pre>
=={{header|AWK}}==
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f SUM_OF_TWO_ADJACENT_NUMBERS_ARE_PRIMES.AWK
# syntax: GAWK -f SUM_OF_TWO_ADJACENT_NUMBERS_ARE_PRIMES.AWK
BEGIN {
BEGIN {
Line 75: Line 75:
return(1)
return(1)
}
}
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 105: Line 105:
==={{header|BASIC256}}===
==={{header|BASIC256}}===
{{trans|FreeBASIC}}
{{trans|FreeBASIC}}
<lang BASIC256>function isPrime(v)
<syntaxhighlight lang="basic256">function isPrime(v)
if v < 2 then return False
if v < 2 then return False
if v mod 2 = 0 then return v = 2
if v mod 2 = 0 then return v = 2
Line 132: Line 132:
end if
end if
end while
end while
end</lang>
end</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 139: Line 139:


==={{header|FreeBASIC}}===
==={{header|FreeBASIC}}===
<lang freebasic>Function isPrime(Byval ValorEval As Integer) As Boolean
<syntaxhighlight lang="freebasic">Function isPrime(Byval ValorEval As Integer) As Boolean
If ValorEval <= 1 Then Return False
If ValorEval <= 1 Then Return False
For i As Integer = 2 To Int(Sqr(ValorEval))
For i As Integer = 2 To Int(Sqr(ValorEval))
Line 161: Line 161:
End If
End If
Loop
Loop
Sleep</lang>
Sleep</syntaxhighlight>
{{out}}
{{out}}
<pre>The first 20 pairs of numbers whose sum is prime:
<pre>The first 20 pairs of numbers whose sum is prime:
Line 186: Line 186:


==={{header|PureBasic}}===
==={{header|PureBasic}}===
<lang PureBasic>Procedure isPrime(v.i)
<syntaxhighlight lang="purebasic">Procedure isPrime(v.i)
If v <= 1 : ProcedureReturn #False
If v <= 1 : ProcedureReturn #False
ElseIf v < 4 : ProcedureReturn #True
ElseIf v < 4 : ProcedureReturn #True
Line 222: Line 222:
ForEver
ForEver
CloseConsole()
CloseConsole()
EndIf</lang>
EndIf</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 232: Line 232:
{{works with|QuickBasic|4.5}}
{{works with|QuickBasic|4.5}}
{{trans|FreeBASIC}}
{{trans|FreeBASIC}}
<lang qbasic>FUNCTION isPrime (ValorEval)
<syntaxhighlight lang="qbasic">FUNCTION isPrime (ValorEval)
IF ValorEval <= 1 THEN isPrime = 0
IF ValorEval <= 1 THEN isPrime = 0
FOR i = 2 TO INT(SQR(ValorEval))
FOR i = 2 TO INT(SQR(ValorEval))
Line 255: Line 255:
END IF
END IF
LOOP
LOOP
END</lang>
END</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 262: Line 262:


==={{header|True BASIC}}===
==={{header|True BASIC}}===
<lang qbasic>FUNCTION isPrime (ValorEval)
<syntaxhighlight lang="qbasic">FUNCTION isPrime (ValorEval)
IF ValorEval <= 1 THEN LET isPrime = 0
IF ValorEval <= 1 THEN LET isPrime = 0
FOR i = 2 TO INT(SQR(ValorEval))
FOR i = 2 TO INT(SQR(ValorEval))
Line 289: Line 289:
END IF
END IF
LOOP
LOOP
END</lang>
END</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 296: Line 296:


==={{header|Yabasic}}===
==={{header|Yabasic}}===
<lang yabasic>sub isPrime(v)
<syntaxhighlight lang="yabasic">sub isPrime(v)
if v < 2 then return False : fi
if v < 2 then return False : fi
if mod(v, 2) = 0 then return v = 2 : fi
if mod(v, 2) = 0 then return v = 2 : fi
Line 322: Line 322:
end if
end if
loop
loop
end</lang>
end</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 332: Line 332:
=={{header|C}}==
=={{header|C}}==
{{trans|Go}}
{{trans|Go}}
<lang c>#include <stdio.h>
<syntaxhighlight lang="c">#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <math.h>
#include <math.h>
Line 385: Line 385:
free(primes);
free(primes);
return 0;
return 0;
}</lang>
}</syntaxhighlight>


{{out}}
{{out}}
Line 417: Line 417:
=={{header|F_Sharp|F#}}==
=={{header|F_Sharp|F#}}==
This task uses [http://www.rosettacode.org/wiki/Extensible_prime_generator#The_functions Extensible Prime Generator (F#)]
This task uses [http://www.rosettacode.org/wiki/Extensible_prime_generator#The_functions Extensible Prime Generator (F#)]
<lang fsharp>
<syntaxhighlight lang="fsharp">
// 2n+1 is prime. Nigel Galloway: Januuary 22nd., 2022
// 2n+1 is prime. Nigel Galloway: Januuary 22nd., 2022
primes32()|>Seq.skip 1|>Seq.take 20|>Seq.map(fun n->n/2)|>Seq.iteri(fun n g->printfn "%2d: %2d + %2d=%d" (n+1) g (g+1) (g+g+1))
primes32()|>Seq.skip 1|>Seq.take 20|>Seq.map(fun n->n/2)|>Seq.iteri(fun n g->printfn "%2d: %2d + %2d=%d" (n+1) g (g+1) (g+g+1))
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 447: Line 447:
=={{header|Factor}}==
=={{header|Factor}}==
{{works with|Factor|0.99 2021-06-02}}
{{works with|Factor|0.99 2021-06-02}}
<lang factor>USING: arrays formatting kernel lists lists.lazy math
<syntaxhighlight lang="factor">USING: arrays formatting kernel lists lists.lazy math
math.primes.lists sequences ;
math.primes.lists sequences ;


20 lprimes cdr [ 2/ dup 1 + 2array ] lmap-lazy ltake
20 lprimes cdr [ 2/ dup 1 + 2array ] lmap-lazy ltake
[ dup sum suffix "%d + %d = %d\n" vprintf ] leach</lang>
[ dup sum suffix "%d + %d = %d\n" vprintf ] leach</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 478: Line 478:
=={{header|Go}}==
=={{header|Go}}==
{{libheader|Go-rcu}}
{{libheader|Go-rcu}}
<lang go>package main
<syntaxhighlight lang="go">package main


import (
import (
Line 499: Line 499:
hp := p / 2
hp := p / 2
fmt.Printf("%2d + %2d = %2d\n", hp, hp+1, p)
fmt.Printf("%2d + %2d = %2d\n", hp, hp+1, p)
}</lang>
}</syntaxhighlight>


{{out}}
{{out}}
Line 533: Line 533:
Here, we generate the first 20 odd primes, divide by 2, drop the fractional part and add 0 and 1 to that value. Then we format that pair of numbers with their sum and with decorations indicating the relevant arithmetic:
Here, we generate the first 20 odd primes, divide by 2, drop the fractional part and add 0 and 1 to that value. Then we format that pair of numbers with their sum and with decorations indicating the relevant arithmetic:


<lang J> (+/,&":'=',{.,&":'+',&":{:)"#. 0 1+/~<.-: p:1+i.20
<syntaxhighlight lang="j"> (+/,&":'=',{.,&":'+',&":{:)"#. 0 1+/~<.-: p:1+i.20
3=1+2
3=1+2
5=2+3
5=2+3
Line 553: Line 553:
67=33+34
67=33+34
71=35+36
71=35+36
73=36+37</lang>
73=36+37</syntaxhighlight>


=={{header|jq}}==
=={{header|jq}}==
Line 562: Line 562:
and so a naive approach to computing the first 20 numbers satisfying
and so a naive approach to computing the first 20 numbers satisfying
the condition is appropriate.
the condition is appropriate.
<lang jq>def is_prime:
<syntaxhighlight lang="jq">def is_prime:
. as $n
. as $n
| if ($n < 2) then false
| if ($n < 2) then false
Line 586: Line 586:
| "\($i) + \($i + 1) = \($q)" );
| "\($i) + \($i + 1) = \($q)" );


naive</lang>
naive</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 612: Line 612:


=={{header|Julia}}==
=={{header|Julia}}==
<lang julia>using Lazy
<syntaxhighlight lang="julia">using Lazy
using Primes
using Primes


Line 630: Line 630:
println("Ten millionth: $i + $(i + 1) = $(i + i + 1)")
println("Ten millionth: $i + $(i + 1) = $(i + i + 1)")
end
end
</lang>{{out}}
</syntaxhighlight>{{out}}
<pre>
<pre>
1 + 2 = 3
1 + 2 = 3
Line 656: Line 656:


=={{header|Mathematica}}/{{header|Wolfram Language}}==
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>Column[Row[{Floor[#/2], " + ", Ceiling[#/2], " = ", #}] & /@ Prime[1 + Range[20]]]
<syntaxhighlight lang="mathematica">Column[Row[{Floor[#/2], " + ", Ceiling[#/2], " = ", #}] & /@ Prime[1 + Range[20]]]
Row[{Floor[#/2], " + ", Ceiling[#/2], " = ", #}] &[Prime[10^7 + 1]]</lang>
Row[{Floor[#/2], " + ", Ceiling[#/2], " = ", #}] &[Prime[10^7 + 1]]</syntaxhighlight>
{{out}}
{{out}}
<pre>1 + 2 = 3
<pre>1 + 2 = 3
Line 683: Line 683:
=={{header|Perl}}==
=={{header|Perl}}==
{{libheader|ntheory}}
{{libheader|ntheory}}
<lang perl>use strict;
<syntaxhighlight lang="perl">use strict;
use warnings;
use warnings;
use ntheory 'is_prime';
use ntheory 'is_prime';


my($n,$c);
my($n,$c);
while () { is_prime(1 + 2*++$n) and printf "%2d + %2d = %2d\n", $n, $n+1, 1+2*$n and ++$c == 20 and last }</lang>
while () { is_prime(1 + 2*++$n) and printf "%2d + %2d = %2d\n", $n, $n+1, 1+2*$n and ++$c == 20 and last }</syntaxhighlight>
{{out}}
{{out}}
<pre> 1 + 2 = 3
<pre> 1 + 2 = 3
Line 713: Line 713:
=={{header|Phix}}==
=={{header|Phix}}==
''Every'' prime p greater than 2 is odd, hence p/2 is k.5 and the adjacent numbers needed are k and k+1. DOH.
''Every'' prime p greater than 2 is odd, hence p/2 is k.5 and the adjacent numbers needed are k and k+1. DOH.
<!--<lang Phix>(phixonline)-->
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">doh</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">doh</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
Line 720: Line 720:
<span style="color: #7060A8;">papply</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes</span><span style="color: #0000FF;">(-</span><span style="color: #000000;">21</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..$],</span><span style="color: #000000;">doh</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">papply</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes</span><span style="color: #0000FF;">(-</span><span style="color: #000000;">21</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..$],</span><span style="color: #000000;">doh</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">doh</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1e7</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">))</span>
<span style="color: #000000;">doh</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1e7</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">))</span>
<!--</lang>-->
<!--</syntaxhighlight>-->
{{out}}
{{out}}
<pre>
<pre>
Line 748: Line 748:


=={{header|Python}}==
=={{header|Python}}==
<lang python>#!/usr/bin/python
<syntaxhighlight lang="python">#!/usr/bin/python


def isPrime(n):
def isPrime(n):
Line 769: Line 769:
print('{:2}'.format(n), "+", '{:2}'.format(n+1), "=", '{:2}'.format(suma))
print('{:2}'.format(n), "+", '{:2}'.format(n+1), "=", '{:2}'.format(suma))
else:
else:
break</lang>
break</syntaxhighlight>
{{out}}
{{out}}
<pre>The first 20 pairs of numbers whose sum is prime:
<pre>The first 20 pairs of numbers whose sum is prime:
Line 795: Line 795:


=={{header|Raku}}==
=={{header|Raku}}==
<lang perl6>my @n-n1-triangular = map { $_, $_ + 1, $_ + ($_ + 1) }, ^Inf;
<syntaxhighlight lang="raku" line>my @n-n1-triangular = map { $_, $_ + 1, $_ + ($_ + 1) }, ^Inf;


my @wanted = @n-n1-triangular.grep: *.[2].is-prime;
my @wanted = @n-n1-triangular.grep: *.[2].is-prime;


printf "%2d + %2d = %2d\n", |.list for @wanted.head(20);</lang>
printf "%2d + %2d = %2d\n", |.list for @wanted.head(20);</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 825: Line 825:


=={{header|Ring}}==
=={{header|Ring}}==
<lang ring>
<syntaxhighlight lang="ring">
load "stdlibcore.ring"
load "stdlibcore.ring"
see "working..." + nl
see "working..." + nl
Line 845: Line 845:


see "done..." + nl
see "done..." + nl
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 873: Line 873:


=={{header|Sidef}}==
=={{header|Sidef}}==
<lang ruby>var wanted = (1..Inf -> lazy.map {|n| [n, n+1, n+(n+1)] }\
<syntaxhighlight lang="ruby">var wanted = (1..Inf -> lazy.map {|n| [n, n+1, n+(n+1)] }\
.grep { .tail.is_prime })
.grep { .tail.is_prime })


wanted.first(20).each_2d {|a,b,c|
wanted.first(20).each_2d {|a,b,c|
printf("%2d + %2d = %2d\n", a,b,c)
printf("%2d + %2d = %2d\n", a,b,c)
}</lang>
}</syntaxhighlight>


{{out}}
{{out}}
Line 908: Line 908:
{{libheader|Wren-math}}
{{libheader|Wren-math}}
{{libheader|Wren-fmt}}
{{libheader|Wren-fmt}}
<lang ecmascript>import "./math" for Int
<syntaxhighlight lang="ecmascript">import "./math" for Int
import "./fmt" for Fmt
import "./fmt" for Fmt


Line 922: Line 922:
var p = primes[1e7]
var p = primes[1e7]
var hp = (p/2).floor
var hp = (p/2).floor
Fmt.print("$2d + $2d = $2d", hp, hp + 1, p)</lang>
Fmt.print("$2d + $2d = $2d", hp, hp + 1, p)</syntaxhighlight>


{{out}}
{{out}}
Line 954: Line 954:
=={{header|XPL0}}==
=={{header|XPL0}}==
{{trans|Ring}}
{{trans|Ring}}
<syntaxhighlight lang="xpl0">
<lang XPL0>
include xpllib;
include xpllib;
int N, Num, Sum;
int N, Num, Sum;
Line 972: Line 972:
];
];
Text(0, "Done...^M^J");
Text(0, "Done...^M^J");
]</lang>
]</syntaxhighlight>


{{out}}
{{out}}