hpc-lab-code/lab3/prime/src/prime_ser.cpp
2026-01-20 19:06:12 +08:00

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