int main (int argc, char ** argv) { if (argc != 2) { fprintf (stderr, "usage: %s <N>\n", argv[0]); return 1; } int N = atoi (argv[1]); if (N < 3) return 1; bool * primes = eratosthenes_sieve (N); int max_sum = 0; int max_count = 0; for (int i = 2; i < N; i++) { if (!primes[i]) continue; int count = 0; int sum = sum_primes (primes, &count, i, N); if (count > max_count) { max_sum = sum; max_count = count; } } printf ("%d\n", max_sum); free (primes); return 0; }
int main() { sum_primes(10); sum_primes(2e6); return 1; }