Safe and Sophie Germain primes: Difference between revisions

m
syntax highlighting fixup automation
(Added Sidef)
m (syntax highlighting fixup automation)
Line 17:
 
=={{header|11l}}==
<langsyntaxhighlight lang="11l">F is_prime(a)
I a == 2
R 1B
Line 33:
I ++cnt == 50
L.break
print()</langsyntaxhighlight>
 
{{out}}
Line 42:
=={{header|ALGOL 68}}==
{{libheader|ALGOL 68-primes}}
<langsyntaxhighlight lang="algol68">BEGIN # find some Sophie Germain primes: primes p such that 2p + 1 is prime #
PR read "primes.incl.a68" PR
[]BOOL prime = PRIMESIEVE 10 000; # hopefully, enough primes #
Line 54:
FI
OD
END</langsyntaxhighlight>
{{out}}
<pre>
Line 66:
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">sophieG?: function [p][
and? [prime? p][prime? 1 + 2*p]
]
Line 79:
 
loop split.every:10 sophieGermaines 'a ->
print map a => [pad to :string & 4]</langsyntaxhighlight>
 
{{out}}
Line 90:
 
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f SAFE_AND_SOPHIE_GERMAIN_PRIMES.AWK
BEGIN {
Line 117:
return(1)
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 130:
=={{header|Factor}}==
{{works with|Factor|0.99 2022-04-03}}
<langsyntaxhighlight lang="factor">USING: lists lists.lazy math math.primes math.primes.lists prettyprint ;
 
50 lprimes [ 2 * 1 + prime? ] lfilter ltake [ . ] leach</langsyntaxhighlight>
{{out}}
<pre>
Line 145:
 
=={{header|Fermat}}==
<langsyntaxhighlight lang="fermat">c:=1;
n:=3;
!!2;
Line 154:
fi;
n:+2;
od;</langsyntaxhighlight>
 
=={{header|BASIC}}==
==={{header|FreeBASIC}}===
<langsyntaxhighlight lang="freebasic">function isprime(n as integer) as boolean
if n < 2 then return false
if n < 4 then return true
Line 184:
if c mod 10 = 0 then print
end if
wend</langsyntaxhighlight>
{{out}}<pre>2 3 5 11 23 29 41 53 83 89
113 131 173 179 191 233 239 251 281 293
Line 192:
 
==={{header|GW-BASIC}}===
<langsyntaxhighlight lang="gwbasic">10 PRINT "2 ";
20 C = 1
30 N = 3
Line 220:
270 WEND
280 Z = 1
290 RETURN</langsyntaxhighlight>
 
==={{header|BASIC256}}===
<langsyntaxhighlight lang="freebasic">function isPrime(v)
if v < 2 then return False
if v mod 2 = 0 then return v = 2
Line 250:
end if
end while
end</langsyntaxhighlight>
 
==={{header|PureBasic}}===
<langsyntaxhighlight PureBasiclang="purebasic">Procedure isPrime(v.i)
If v <= 1 : ProcedureReturn #False
ElseIf v < 4 : ProcedureReturn #True
Line 290:
Wend
Input()
CloseConsole()</langsyntaxhighlight>
 
==={{header|Yabasic}}===
<langsyntaxhighlight lang="freebasic">sub isPrime(v)
if v < 2 then return False : fi
if mod(v, 2) = 0 then return v = 2 : fi
Line 320:
endif
wend
end</langsyntaxhighlight>
 
=={{header|Go}}==
{{trans|Wren}}
{{libheader|Go-rcu}}
<langsyntaxhighlight lang="go">package main
 
import (
Line 354:
}
}
}</langsyntaxhighlight>
 
{{out}}
Line 372:
See e.g. [[Find_adjacent_primes_which_differ_by_a_square_integer#jq]]
for suitable implementions of `is_prime/0` and `primes/0` as used here.
<langsyntaxhighlight lang="jq">limit(50; primes | select(2*. + 1|is_prime))</langsyntaxhighlight>
{{out}}
<pre>
Line 385:
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">using Primes
 
for (i, p) in enumerate(filter(x -> isprime(2x + 1), primes(1500)))
print(lpad(p, 5), i % 10 == 0 ? "\n" : "")
end
</langsyntaxhighlight>{{out}}
<pre>
2 3 5 11 23 29 41 53 83 89
Line 399:
</pre>
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">nextSafe[n_] :=
NestWhile[NextPrime, n + 1, ! (PrimeQ[2 # + 1] && PrimeQ[#]) &]
Labeled[Grid[Partition[NestList[nextSafe, 2, 49], 10],
Alignment -> {Right,
Baseline}], "First 50 Sophie Germain primes:", Top]</langsyntaxhighlight>
 
{{out}}<pre>
Line 415:
 
=={{header|PARI/GP}}==
<langsyntaxhighlight lang="parigp">issg(n)=if(isprime(n)&&isprime(1+2*n),1,0)
c = 0
n = 2
while(c<50,if(issg(n),print(n);c=c+1);n=n+1)</langsyntaxhighlight>
 
=={{header|Perl}}==
{{libheader|ntheory}}
<langsyntaxhighlight lang="perl">#!/usr/bin/perl
 
use strict; # https://rosettacode.org/wiki/Safe_and_Sophie_Germain_primes
Line 430:
my @want;
forprimes { is_prime(2 * $_ + 1) and (50 == push @want, $_)
and print("@want\n" =~ s/.{65}\K /\n/gr) + exit } 2, 1e9;</langsyntaxhighlight>
{{out}}
<pre>
Line 439:
 
=={{header|Phix}}==
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">sophie_germain</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
Line 453:
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"First 50: %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">shorten</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprint</span><span style="color: #0000FF;">),</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #000000;">5</span><span style="color: #0000FF;">))})</span>
<!--</langsyntaxhighlight>-->
{{out}}
<pre>
Line 460:
 
=={{header|Python}}==
<langsyntaxhighlight lang="python">
print("working...")
row = 0
Line 483:
print(Sophie)
print("done...")
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 493:
 
=={{header|Raku}}==
<syntaxhighlight lang="raku" perl6line>put join "\n", (^∞ .grep: { .is-prime && ($_*2+1).is-prime } )[^50].batch(10)».fmt: "%4d";</langsyntaxhighlight>
{{out}}
<pre> 2 3 5 11 23 29 41 53 83 89
Line 502:
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
load "stdlib.ring"
see "working..." +nl
Line 527:
 
see "done..." + nl
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 541:
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">^Inf -> lazy.grep{|p| all_prime(p, 2*p + 1) }.first(50).slices(10).each{
.join(', ').say
}</langsyntaxhighlight>
{{out}}
<pre>
Line 557:
{{libheader|Wren-seq}}
{{libheader|Wren-fmt}}
<langsyntaxhighlight lang="ecmascript">import "./math" for Int
import "./seq" for Lst
import "./fmt" for Fmt
Line 572:
}
System.print("The first 50 Sophie Germain primes are:")
for (chunk in Lst.chunks(sgp, 10)) Fmt.print("$,5d", chunk)</langsyntaxhighlight>
 
{{out}}
Line 585:
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">func IsPrime(N); \Return 'true' if N is a prime number
int N, I;
[for I:= 2 to sqrt(N) do
Line 602:
N:= N+1;
until Count >= 50;
]</langsyntaxhighlight>
 
{{out}}
10,333

edits