59 lines
963 B
C++
59 lines
963 B
C++
#include <cstdlib>
|
|
#include <cstdio>
|
|
#include <ctime>
|
|
int main ( int argc, char *argv[] );
|
|
int prime_part ( int id, int p, int n );
|
|
|
|
int main ( int argc, char *argv[] )
|
|
{
|
|
int id;
|
|
int n = 100000;
|
|
int p;
|
|
int total;
|
|
int total_part;
|
|
p = 4;
|
|
// Check for correct number of arguments
|
|
if (argc == 2) {
|
|
n = std::atoi(argv[1]);
|
|
} else if (argc > 2) {
|
|
printf("Usage: %s [n]\n", argv[0]);
|
|
return 1;
|
|
}
|
|
|
|
total = 0;
|
|
for ( id = 0; id < p; id++ )
|
|
{
|
|
total_part = prime_part ( id, p, n );
|
|
total = total + total_part;
|
|
}
|
|
printf ( "\n" );
|
|
printf ( "Between 2 and %d, there are %d primes\n", n, total );
|
|
return 0;
|
|
}
|
|
int prime_part ( int id, int p, int n )
|
|
{
|
|
int i;
|
|
int j;
|
|
int prime;
|
|
int total_part;
|
|
total_part = 0;
|
|
for ( i = 2 + id; i <= n; i = i + p )
|
|
{
|
|
prime = 1;
|
|
|
|
for ( j = 2; j < i; j++ )
|
|
{
|
|
if ( i % j == 0 )
|
|
{
|
|
prime = 0;
|
|
break;
|
|
}
|
|
}
|
|
if ( prime )
|
|
{
|
|
total_part = total_part + 1;
|
|
}
|
|
}
|
|
return total_part;
|
|
}
|