Euler/libc/getPrimeNumber.c

37 lines
876 B
C
Raw Normal View History

2015-11-24 22:25:45 +01:00
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
if ( argc != 2 ){
printf( "usage: ./getPrimeNumber [integer]\n");
return 0;
}
else{
int limit= atoi(argv[1]);
2015-11-24 22:39:49 +01:00
int *primes, i, isPrime,count=2, number=3,root;
2015-11-24 22:32:05 +01:00
primes=(int*)malloc(limit*sizeof(int));
2015-11-24 22:25:45 +01:00
primes[0]=2;
primes[1]=3;
2015-11-24 22:39:49 +01:00
2015-11-24 22:25:45 +01:00
while( count <= limit){
isPrime=1;
2015-11-24 22:39:49 +01:00
root=sqrt(number);
for (i=0; ((primes[i] <= root) && (i < count)) ; i++){
2015-11-24 22:25:45 +01:00
if(number%primes[i] == 0){
isPrime=0;
break;
}
}
if(isPrime){
count++;
primes[count -1]=number;
}
number+=2;
}
printf("%d\n",primes[count -1]);
}
return 0;
}