10001th prime: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
Thundergnat (talk | contribs) m (Automated syntax highlighting fixup (second round - minor fixes)) |
||
Line 9: | Line 9: | ||
The APPROXIMATESIEVESIZEFOR operator uses this to find a rough value for size of sieve needed to contain the required number of primes. |
The APPROXIMATESIEVESIZEFOR operator uses this to find a rough value for size of sieve needed to contain the required number of primes. |
||
{{libheader|ALGOL 68-primes}} |
{{libheader|ALGOL 68-primes}} |
||
<syntaxhighlight lang=algol68>BEGIN # find the 10001st prime # |
<syntaxhighlight lang="algol68">BEGIN # find the 10001st prime # |
||
PR read "primes.incl.a68" PR |
PR read "primes.incl.a68" PR |
||
# construct a sieve of primes that should be large enough to contain 10001 primes # |
# construct a sieve of primes that should be large enough to contain 10001 primes # |
||
Line 31: | Line 31: | ||
=={{header|Arturo}}== |
=={{header|Arturo}}== |
||
<syntaxhighlight lang=rebol>primes: select 2..110000 => prime? |
<syntaxhighlight lang="rebol">primes: select 2..110000 => prime? |
||
print primes\[10000]</syntaxhighlight> |
print primes\[10000]</syntaxhighlight> |
||
Line 39: | Line 39: | ||
=={{header|AWK}}== |
=={{header|AWK}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="awk"> |
||
# syntax: GAWK -f 10001TH_PRIME.AWK |
# syntax: GAWK -f 10001TH_PRIME.AWK |
||
# converted from FreeBASIC |
# converted from FreeBASIC |
||
Line 79: | Line 79: | ||
=={{header|BASIC}}== |
=={{header|BASIC}}== |
||
==={{header|BASIC256}}=== |
==={{header|BASIC256}}=== |
||
<syntaxhighlight lang= |
<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 105: | Line 105: | ||
==={{header|PureBasic}}=== |
==={{header|PureBasic}}=== |
||
<syntaxhighlight lang= |
<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 145: | Line 145: | ||
==={{header|Yabasic}}=== |
==={{header|Yabasic}}=== |
||
<syntaxhighlight 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 172: | Line 172: | ||
=={{header|C}}== |
=={{header|C}}== |
||
<syntaxhighlight lang=c>#include<stdio.h> |
<syntaxhighlight lang="c">#include<stdio.h> |
||
#include<stdlib.h> |
#include<stdlib.h> |
||
Line 203: | Line 203: | ||
===Sieve vs Trial Division=== |
===Sieve vs Trial Division=== |
||
Comparing performance of the one-at-a-time trial division method vs the sieve of Eratosthenes method. About ten times faster for the sieve. It may appear that the sieve may be off by one, <code>pr[10000]</code> but since the array is zero based, it's the 10001st value. |
Comparing performance of the one-at-a-time trial division method vs the sieve of Eratosthenes method. About ten times faster for the sieve. It may appear that the sieve may be off by one, <code>pr[10000]</code> but since the array is zero based, it's the 10001st value. |
||
<syntaxhighlight lang=csharp>using System; class Program { |
<syntaxhighlight lang="csharp">using System; class Program { |
||
static bool isprime(uint p ) { if ((p & 1) == 0) return p == 2; |
static bool isprime(uint p ) { if ((p & 1) == 0) return p == 2; |
||
Line 236: | Line 236: | ||
===Alternative Trial Division Method=== |
===Alternative Trial Division Method=== |
||
<syntaxhighlight lang=csharp>using System; using System.Text; // PRIME_numb.cs russian DANILIN |
<syntaxhighlight lang="csharp">using System; using System.Text; // PRIME_numb.cs russian DANILIN |
||
namespace p10001 // 1 second 10001 104743 |
namespace p10001 // 1 second 10001 104743 |
||
{ class Program // rextester.com/ZBEPGE34760 |
{ class Program // rextester.com/ZBEPGE34760 |
||
Line 260: | Line 260: | ||
=={{header|C++}}== |
=={{header|C++}}== |
||
{{libheader|Primesieve}} |
{{libheader|Primesieve}} |
||
<syntaxhighlight lang=cpp>#include <iostream> |
<syntaxhighlight lang="cpp">#include <iostream> |
||
#include <locale> |
#include <locale> |
||
Line 277: | Line 277: | ||
=={{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#)] |
||
<syntaxhighlight lang=fsharp> |
<syntaxhighlight lang="fsharp"> |
||
// 10001st prime. Nigel Galloway: November 22nd., 2021 |
// 10001st prime. Nigel Galloway: November 22nd., 2021 |
||
printfn $"%d{Seq.item 10000 (primes32())}" |
printfn $"%d{Seq.item 10000 (primes32())}" |
||
Line 286: | Line 286: | ||
</pre> |
</pre> |
||
=={{header|Factor}}== |
=={{header|Factor}}== |
||
<syntaxhighlight lang=factor>USING: math math.primes prettyprint ; |
<syntaxhighlight lang="factor">USING: math math.primes prettyprint ; |
||
2 10,000 [ next-prime ] times .</syntaxhighlight> |
2 10,000 [ next-prime ] times .</syntaxhighlight> |
||
Line 295: | Line 295: | ||
=={{header|Fermat}}== |
=={{header|Fermat}}== |
||
<syntaxhighlight lang=fermat> |
<syntaxhighlight lang="fermat"> |
||
Prime(10001); |
Prime(10001); |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Line 301: | Line 301: | ||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |
||
<syntaxhighlight lang=freebasic> |
<syntaxhighlight lang="freebasic"> |
||
#include "isprime.bas" |
#include "isprime.bas" |
||
function prime( n as uinteger ) as ulongint |
function prime( n as uinteger ) as ulongint |
||
Line 318: | Line 318: | ||
=={{header|Frink}}== |
=={{header|Frink}}== |
||
<syntaxhighlight lang=frink>nth[primes[], 10001-1]</syntaxhighlight> |
<syntaxhighlight lang="frink">nth[primes[], 10001-1]</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 326: | Line 326: | ||
=={{header|GW-BASIC}}== |
=={{header|GW-BASIC}}== |
||
<syntaxhighlight lang=gwbasic>10 PN=1 |
<syntaxhighlight lang="gwbasic">10 PN=1 |
||
20 P = 3 |
20 P = 3 |
||
30 WHILE PN < 10001 |
30 WHILE PN < 10001 |
||
Line 348: | Line 348: | ||
=={{header|Go}}== |
=={{header|Go}}== |
||
<syntaxhighlight lang=go>package main |
<syntaxhighlight lang="go">package main |
||
import "fmt" |
import "fmt" |
||
Line 381: | Line 381: | ||
=={{header|J}}== |
=={{header|J}}== |
||
<syntaxhighlight lang=j>p:10000 NB. the index starts at 0; p:0 = 2</syntaxhighlight> |
<syntaxhighlight lang="j">p:10000 NB. the index starts at 0; p:0 = 2</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>104743</pre> |
<pre>104743</pre> |
||
Line 387: | Line 387: | ||
=={{header|Java}}== |
=={{header|Java}}== |
||
Uses the PrimeGenerator class from [[Extensible prime generator#Java]]. |
Uses the PrimeGenerator class from [[Extensible prime generator#Java]]. |
||
<syntaxhighlight lang=java>public class NthPrime { |
<syntaxhighlight lang="java">public class NthPrime { |
||
public static void main(String[] args) { |
public static void main(String[] args) { |
||
System.out.printf("The 10,001st prime is %,d.\n", nthPrime(10001)); |
System.out.printf("The 10,001st prime is %,d.\n", nthPrime(10001)); |
||
Line 414: | Line 414: | ||
See [[Erdős-primes#jq]] for a suitable definition of `is_prime` as used here. |
See [[Erdős-primes#jq]] for a suitable definition of `is_prime` as used here. |
||
<syntaxhighlight lang=jq># Output: a stream of the primes |
<syntaxhighlight lang="jq"># Output: a stream of the primes |
||
def primes: 2, (range(3; infinite; 2) | select(is_prime)); |
def primes: 2, (range(3; infinite; 2) | select(is_prime)); |
||
Line 426: | Line 426: | ||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
<syntaxhighlight lang=julia>julia> using Primes |
<syntaxhighlight lang="julia">julia> using Primes |
||
julia> prime(10001) |
julia> prime(10001) |
||
Line 432: | Line 432: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="mathematica">Prime[10001]</syntaxhighlight> |
||
{{out}}<pre> |
{{out}}<pre> |
||
Line 439: | Line 439: | ||
=={{header|PARI/GP}}== |
=={{header|PARI/GP}}== |
||
<syntaxhighlight lang=parigp>prime(10001)</syntaxhighlight> |
<syntaxhighlight lang="parigp">prime(10001)</syntaxhighlight> |
||
{{out}}<pre>%1 = 104743</pre> |
{{out}}<pre>%1 = 104743</pre> |
||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
{{libheader|ntheory}} |
{{libheader|ntheory}} |
||
<syntaxhighlight lang=perl>use strict; |
<syntaxhighlight lang="perl">use strict; |
||
use warnings; |
use warnings; |
||
use feature 'say'; |
use feature 'say'; |
||
Line 463: | Line 463: | ||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
<!--<syntaxhighlight lang= |
<!--<syntaxhighlight lang="phix">(phixonline)--> |
||
<span style="color: #008080;">with</span> <span style="color: #008080;">js</span> <span style="color: #0000FF;">?</span><span style="color: #7060A8;">get_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">10001</span><span style="color: #0000FF;">)</span> |
<span style="color: #008080;">with</span> <span style="color: #008080;">js</span> <span style="color: #0000FF;">?</span><span style="color: #7060A8;">get_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">10001</span><span style="color: #0000FF;">)</span> |
||
<!--</syntaxhighlight>--> |
<!--</syntaxhighlight>--> |
||
Line 473: | Line 473: | ||
=={{header|Picat}}== |
=={{header|Picat}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="picat">go ?=> |
||
println(nth_prime(10001)), |
println(nth_prime(10001)), |
||
Line 503: | Line 503: | ||
=={{header|Python}}== |
=={{header|Python}}== |
||
===Trial Division Method=== |
===Trial Division Method=== |
||
<syntaxhighlight lang=python>#!/usr/bin/python |
<syntaxhighlight lang="python">#!/usr/bin/python |
||
def isPrime(n): |
def isPrime(n): |
||
Line 528: | Line 528: | ||
===Alternative Trial Division Method=== |
===Alternative Trial Division Method=== |
||
<syntaxhighlight lang=python>import time; max=10001; n=1; p=1; # PRIME_numb.py russian DANILIN |
<syntaxhighlight lang="python">import time; max=10001; n=1; p=1; # PRIME_numb.py russian DANILIN |
||
while n<=max: # 78081 994271 45 seconds |
while n<=max: # 78081 994271 45 seconds |
||
f=0; j=2; s = int(p**0.5) # rextester.com/AAOHQ6342 |
f=0; j=2; s = int(p**0.5) # rextester.com/AAOHQ6342 |
||
Line 548: | Line 548: | ||
=={{header|QB64}}== |
=={{header|QB64}}== |
||
===Trial Division Method=== |
===Trial Division Method=== |
||
<syntaxhighlight lang=qbasic>max=10001: n=1: p=0: t=Timer ' PRIMES.bas russian DANILIN |
<syntaxhighlight lang="qbasic">max=10001: n=1: p=0: t=Timer ' PRIMES.bas russian DANILIN |
||
While n <= max ' 10001 104743 0.35 seconds |
While n <= max ' 10001 104743 0.35 seconds |
||
f=0: j=2 |
f=0: j=2 |
||
Line 564: | Line 564: | ||
===More Efficient TD Method=== |
===More Efficient TD Method=== |
||
<syntaxhighlight lang=qbasic>'JRace's results: |
<syntaxhighlight lang="qbasic">'JRace's results: |
||
'Original version: 10001 104743 .21875 |
'Original version: 10001 104743 .21875 |
||
'This version: 10001 104743 .109375 |
'This version: 10001 104743 .109375 |
||
Line 588: | Line 588: | ||
=={{header|R}}== |
=={{header|R}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="r">library(primes) |
||
nth_prime(10001)</syntaxhighlight> |
nth_prime(10001)</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 594: | Line 594: | ||
=={{header|Racket}}== |
=={{header|Racket}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="racket">#lang racket |
||
(require math/number-theory) |
(require math/number-theory) |
||
; Index starts at 0, (nth-prime 0) is 2 |
; Index starts at 0, (nth-prime 0) is 2 |
||
Line 602: | Line 602: | ||
=={{header|Raku}}== |
=={{header|Raku}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="raku" line>say (^∞).grep( &is-prime )[10000]</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>104743</pre> |
<pre>104743</pre> |
||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<syntaxhighlight lang=rexx>/* REXX */ |
<syntaxhighlight lang="rexx">/* REXX */ |
||
Parse Version v |
Parse Version v |
||
Say v |
Say v |
||
Line 639: | Line 639: | ||
=={{header|Ring}}== |
=={{header|Ring}}== |
||
<syntaxhighlight lang=ring> |
<syntaxhighlight lang="ring"> |
||
load "stdlib.ring" |
load "stdlib.ring" |
||
see "working..." + nl |
see "working..." + nl |
||
Line 660: | Line 660: | ||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
<syntaxhighlight lang=ruby>require "prime" |
<syntaxhighlight lang="ruby">require "prime" |
||
puts Prime.lazy.drop(10_000).next</syntaxhighlight> |
puts Prime.lazy.drop(10_000).next</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 666: | Line 666: | ||
</pre> |
</pre> |
||
=={{header|Rust}}== |
=={{header|Rust}}== |
||
<syntaxhighlight lang=rust>// [dependencies] |
<syntaxhighlight lang="rust">// [dependencies] |
||
// primal = "0.3" |
// primal = "0.3" |
||
Line 680: | Line 680: | ||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
<syntaxhighlight lang=ruby>say 10001.prime</syntaxhighlight> |
<syntaxhighlight lang="ruby">say 10001.prime</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 689: | Line 689: | ||
{{libheader|Wren-math}} |
{{libheader|Wren-math}} |
||
{{libheader|Wren-fmt}} |
{{libheader|Wren-fmt}} |
||
<syntaxhighlight lang=ecmascript>import "./math" for Int |
<syntaxhighlight lang="ecmascript">import "./math" for Int |
||
import "./fmt" for Fmt |
import "./fmt" for Fmt |
||
Line 703: | Line 703: | ||
=={{header|XPL0}}== |
=={{header|XPL0}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="xpl0">func IsPrime(N); \Return 'true' if odd N > 2 is prime |
||
int N, I; |
int N, I; |
||
[for I:= 3 to sqrt(N) do |
[for I:= 3 to sqrt(N) do |