Project Euler, Problem #7
Project Euler, Problem #7 έγραψε:
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?
Λύση #1, σε C (με χρήση συνάρτησης)- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <math.h> // for sqrt()
// -------------------------------------------------------------
int isprime( int num )
{
register int i;
for (i=2; i<=sqrt(num); i++)
if ( num % i == 0 )
return 0; // FALSE
return num < 2 ? 0 : 1;
}
// -------------------------------------------------------------
int main( void )
{
register int i, primecount=0;
for (i=2; primecount < 10001; i++)
if ( isprime(i) )
primecount++;
printf("%d\n", --i);
return 0;
}
Λύση #2, σε C (χωρίς χρήση συνάρτησης)- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <math.h> // for sqrt()
// -------------------------------------------------------------
int main( void )
{
int i,j, primecount = 0;
int isprime = 1; // TRUE
for (i=2; primecount < 10001; i++)
{
for (j=2; j<=sqrt(i); j++)
{
if ( i%j == 0 ) {
isprime = 0; // FALSE
break;
}
}
if ( isprime )
primecount++;
isprime = 1; // TRUE
}
printf("%d\n", --i);
return 0;
}