Consecutive prime sum | Project Euler | Problem #50
URL to the problem page: https://projecteuler.net/problem=50
The prime 41, can be written as the sum of six consecutive primes:
41 = 2 + 3 + 5 + 7 + 11 + 13
This is the longest sum of consecutive primes that adds to a prime below one-hundred.
The longest sum of consecutive primes below one-thousand that adds to a prime, contains 21 terms, and is equal to 953.
Which prime, below one-million, can be written as the sum of the most consecutive primes?
The prime 41, can be written as the sum of six consecutive primes:
41 = 2 + 3 + 5 + 7 + 11 + 13
This is the longest sum of consecutive primes that adds to a prime below one-hundred.
The longest sum of consecutive primes below one-thousand that adds to a prime, contains 21 terms, and is equal to 953.
Which prime, below one-million, can be written as the sum of the most consecutive primes?
#include <iostream>
using namespace std;
int main()
{
unsigned long long int i, j, a = 0, counter, sum, primes[78498];
for (i = 999999; i >= 2; i--) {
counter = 0;
for (j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
counter++;
break;
}
}
if (counter == 0) {
primes[a] = i;
a++;
}
}
for (a = 78497; a > 0; a--) {
sum = 0;
for (i = a; i > 0; i--) {
if (sum + primes[i] <= primes[0]) {
sum += primes[i];
}
else if (sum + primes[i] > primes[0]) {
break;
}
}
for (j = 0; primes[j] >= sum; j++) {
if (sum == primes[j]) {
cout << "Prime number that can be written as the sum of the most consecutive primes below 1.000.000 is = " << sum << endl;
break;
}
}
if (sum == primes[j]) {
break;
}
}
return 0;
}
Comments
Post a Comment