Ejemplo n.º 1
0
void Prob23 :: solve(void)
{
	cout << "Solving Problem 23..." << endl << endl;

	vector<bool> canBeWrittenAsAbundent = vector<bool>(28123, false);
	vector<int> abundentNumbers = getAbundantNumbers();

	int numAbundantNumbers = (int)abundentNumbers.size();
	for(int i = 0; i < numAbundantNumbers; i++)
	{
		for (int j = i; j < numAbundantNumbers; j++)
		{
			int num1 = abundentNumbers.at(i);
			int num2 = abundentNumbers.at(j);
			if (num1 + num2 <= 28123) canBeWrittenAsAbundent.at(num1 + num2 - 1) = true;
			else break;
		}
	}

	int sum = 0;
	for (int i = 0; i < 28123; i++)
	{
		sum += (canBeWrittenAsAbundent.at(i) == false) ? (i + 1) : 0;
	}

	cout << "Answer: " << sum << endl;
}
Ejemplo n.º 2
0
int main() {
    std::vector<int> abundantNumbers = getAbundantNumbers();
    bool isAbundantSum [maxNum * 2 + 1] = {0};

    for(unsigned int i = 0; i < abundantNumbers.size(); i++) {
        for(unsigned int j = i; j < abundantNumbers.size(); j++) {
            isAbundantSum[abundantNumbers[i]+abundantNumbers[j]] = true;
        }
    }

    int sum = 0;
    for(int i = 1; i <= maxNum; i++)
        sum += isAbundantSum[i] ? 0 : i;

    std::cout << sum << std::endl;

}