Safe and Sophie Germain primes: Difference between revisions

From Rosetta Code
Content added Content deleted
(added already done Safe_primes_and_unsafe_primes link)
Line 2: Line 2:
[[Category:Mathematics]]
[[Category:Mathematics]]


A prime number ''p'' is [[wp:Safe_and_Sophie_Germain_primes|Sophie Germain prime]] if 2''p'' + 1 is also prime.
A prime number ''p'' is [[wp:Safe_and_Sophie_Germain_primes|Sophie Germain prime]] if 2''p''&nbsp;+&nbsp;1 is also prime.<br>
;<b>See the same at [[Safe_primes_and_unsafe_primes]]</b><br>

The number 2''p''&nbsp;+&nbsp;1 associated with a Sophie Germain prime is called a '''safe prime'''.
The number 2''p''&nbsp;+&nbsp;1 associated with a Sophie Germain prime is called a '''safe prime'''.

Revision as of 08:30, 10 December 2021

Safe and Sophie Germain primes is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

A prime number p is Sophie Germain prime if 2p + 1 is also prime.

See the same at Safe_primes_and_unsafe_primes

The number 2p + 1 associated with a Sophie Germain prime is called a safe prime.

Task

Generate the first   50   Sophie Germain prime numbers.

jq

Works with: jq

Works with gojq, the Go implementation of jq

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. <lang jq>limit(50; primes | select(2*. + 1|is_prime))</lang>

Output:
2
3
5
...
1451
1481
1499

XPL0

<lang XPL0>func IsPrime(N); \Return 'true' if N is a prime number int N, I; [for I:= 2 to sqrt(N) do

   if rem(N/I) = 0 then return false;

return true; ];

int N, Count; [N:= 2; Count:= 0; repeat if IsPrime(N) & IsPrime(2*N+1) then

           [IntOut(0, N);  ChOut(0, 9\tab\);
           Count:= Count+1;
           if rem(Count/10) = 0 then CrLf(0);
           ];
       N:= N+1;

until Count >= 50; ]</lang>

Output:
2       3       5       11      23      29      41      53      83      89      
113     131     173     179     191     233     239     251     281     293     
359     419     431     443     491     509     593     641     653     659     
683     719     743     761     809     911     953     1013    1019    1031    
1049    1103    1223    1229    1289    1409    1439    1451    1481    1499