Safe primes and unsafe primes: Difference between revisions

Content added Content deleted
m (syntax highlighting fixup automation)
(added Arturo)
Line 250: Line 250:
2, 3, 13, 17, 19, 29, 31, 37, 41, 43, 53, 61, 67, 71, 73, 79, 89, 97, 101, 103, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 173, 181, 191, 193, 197, 199, 211, 223, 229, 233
2, 3, 13, 17, 19, 29, 31, 37, 41, 43, 53, 61, 67, 71, 73, 79, 89, 97, 101, 103, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 173, 181, 191, 193, 197, 199, 211, 223, 229, 233
There are 74174 unsafe primes < 1,000,000 and 633922 < 10,000,000."</syntaxhighlight>
There are 74174 unsafe primes < 1,000,000 and 633922 < 10,000,000."</syntaxhighlight>
=={{header|Arturo}}==
<syntaxhighlight lang="arturo">primes: select 2..10000000 => prime?

safe?: function [n]->
prime? (n-1)/2

unsafe?: function [n]->
not? safe? n

printWithCommas: function [lst]->
join.with:", " to [:string] lst

print ["first 35 safe primes:"
primes | select.first:35 => safe?
| printWithCommas]

print ["safe primes below 1M:"
primes | select 'x -> x < 1000000
| enumerate => safe?]

print ["safe primes below 10M:"
primes | enumerate => safe?]

print ["first 40 unsafe primes:"
primes | select.first:40 => unsafe?
| printWithCommas]

print ["unsafe primes below 1M:"
primes | select 'x -> x < 1000000
| enumerate => unsafe?]

print ["unsafe primes below 10M:"
primes | enumerate => unsafe?]</syntaxhighlight>

{{out}}

<pre>first 35 safe primes: 5, 7, 11, 23, 47, 59, 83, 107, 167, 179, 227, 263, 347, 359, 383, 467, 479, 503, 563, 587, 719, 839, 863, 887, 983, 1019, 1187, 1283, 1307, 1319, 1367, 1439, 1487, 1523, 1619
safe primes below 1M: 4324
safe primes below 10M: 30657
first 40 unsafe primes: 2, 3, 13, 17, 19, 29, 31, 37, 41, 43, 53, 61, 67, 71, 73, 79, 89, 97, 101, 103, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 173, 181, 191, 193, 197, 199, 211, 223, 229, 233
unsafe primes below 1M: 74174
unsafe primes below 10M: 633922</pre>

=={{header|AWK}}==
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<syntaxhighlight lang="awk">
Line 326: Line 369:
Number below 10000000: 633922
Number below 10000000: 633922
</pre>
</pre>



=={{header|BASIC256}}==
=={{header|BASIC256}}==