#include #include #include 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; }