10001th prime: Difference between revisions

From Rosetta Code
Content added Content deleted
(Add Factor)
m (grammar)
Line 2: Line 2:


;Task:
;Task:
<br>Find and show on this page 10001th prime
<br>Find and show on this page the 10001st prime number.
<br><br>
<br><br>



Revision as of 21:12, 16 November 2021

10001th prime 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.
Task


Find and show on this page the 10001st prime number.

C

<lang c>#include<stdio.h>

  1. include<stdlib.h>

int isprime( int p ) {

   int i;
   if(p==2) return 1;
   if(!(p%2)) return 0;
   for(i=3; i*i<=p; i+=2) {
      if(!(p%i)) return 0;
   }
   return 1;

}

int prime( int n ) {

   int p, pn=1;
   if(n==1) return 2;
   for(p=3;pn<n;p+=2) {
       if(isprime(p)) pn++;
   }
   return p-2;

}

int main(void) {

   printf( "%d\n", prime(10001) );
   return 0;

}</lang>

Output:
104743

Factor

<lang factor>USING: math math.primes prettyprint ;

2 10,000 [ next-prime ] times .</lang>

Output:
104743

Fermat

<lang fermat> Prime(10001); </lang>

Output:
104743

FreeBASIC

<lang freebasic>

  1. include "isprime.bas"

function prime( n as uinteger ) as ulongint

   if n=1 then return 2
   dim as integer p=3, pn=1
   while pn<n
       if isprime(p) then pn + = 1
       p += 2
   wend
   return p-2

end function

print prime(10001) </lang>

Output:
104743

GW-BASIC

<lang gwbasic>10 PN=1 20 P = 3 30 WHILE PN < 10001 40 GOSUB 100 50 IF Q = 1 THEN PN = PN + 1 60 P = P + 2 70 WEND 80 PRINT P-2 90 END 100 REM tests if a number is prime 110 Q=0 120 IF P = 2 THEN Q = 1: RETURN 130 IF P=3 THEN Q=1:RETURN 140 I=1 150 I=I+2 160 IF INT(P/I)*I = P THEN RETURN 170 IF I*I<=P THEN GOTO 150 180 Q = 1 190 RETURN</lang>

Output:
104743

J

<lang j>p:10000 NB. the index starts at 0; p:0 = 2</lang>

Output:
104743

Perl

Library: ntheory

<lang perl>use strict; use warnings; use feature 'say';

  1. the lengthy wait increases the delight in finally seeing the answer

my($n,$c) = (1,0); while () {

   $c++ if (1 x ++$n) !~ /^(11+)\1+$/;
   $c == 10_001 and say $n and last;

}

  1. or if for some reason you want the answer quickly

use ntheory 'nth_prime'; say nth_prime(10_001);</lang>

PARI/GP

<lang parigp>prime(10001)</lang>

Output:
%1 = 104743

Raku

<lang perl6>say (^∞).grep( &is-prime )[10000]</lang>

Output:
104743

Ring

<lang ring> load "stdlib.ring" see "working..." + nl num = 0 pr = 0 limit = 10001

while true

     num++
     if isprime(num)
        pr++
     ok
     if pr = limit
        exit
     ok

end

see "" + num + nl see "done..." + nl </lang>

Output:
working...
The 10001th prime is: 104743
done...