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