10001th prime: Difference between revisions

Content added Content deleted
m (syntax highlighting fixup automation)
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=AWK>
<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=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 105: Line 105:


==={{header|PureBasic}}===
==={{header|PureBasic}}===
<syntaxhighlight 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 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=Mathematica>Prime[10001]</syntaxhighlight>
<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=Phix>(phixonline)-->
<!--<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=Picat>go ?=>
<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=R>library(primes)
<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=Racket>#lang racket
<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=perl6>say (^∞).grep( &is-prime )[10000]</syntaxhighlight>
<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=XPL0>func IsPrime(N); \Return 'true' if odd N > 2 is prime
<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