Exercise: Design a program that finds all numbers from 1 to 1000 whose prime factors, when added together, sum up to a prime number (for example, 12 has prime factors of 2, 2, and 3, which sum to 7, which is prime).
I did that, but it is not working:
Code:#include <iostream>
using namespace std;
int sum = 0;
bool prime (int number);
bool primeSum (int number);
int main()
{
for (int i = 2; i <= 1000; i++)
{
if (prime(i))
{
if (primeSum(i))
{
cout << i << endl;
}
sum = 0;
}
}
cin.get();
return 0;
}
bool prime (int number)
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
bool primeSum (int number)
{
for (int i = 2; i <= number;)
{
if (number % i == 0)
{
sum += i;
number /= i;
i--;
}
}
if (prime(sum))
{
return true;
}
return false;
}