Первичная факторизация первых 1000 чисел в C++
Мне нужно написать программу, которая могла бы найти суммы простых множителей первых 1000 чисел, проверить, являются ли суммы простыми, и распечатать их, если они есть.
У меня есть некоторый псевдокод, который я написал, и у меня есть работающая программа для генерации простых чисел, которые я пытаюсь расширить. Кстати, я учусь по книге "Прыжок в C++" (это практическая проблема в книге).
Это псевдокод:
// for every 1000 of the first bunch of numbers, check if the number is prime
// if (number isPrime())
// use expression <number_being_checked % number_being_compared_against == 0;>
// if (number_being_checked % number_being_compared_against == 0)
// for every number found from dividing the two numbers, check if number is prime
// add up prime numbers and check if the sums are prime
// else, return false in bool function isFactorPrime() (if I write such a function)
И это функция main() прямо сейчас:
int main ()
{
for (int i = 0; i < 1000; i++)
{
if (isFactorPrime(i))
{
cout << i
}
}
}
У меня сейчас проблема в том, что я должен добавить к i (i + some_variable?), Чтобы получить сумму, которую я могу использовать в своем чеке, чтобы узнать, простое ли это число. Должен ли я создать внутренний цикл for, а затем добавить в него переменную цикла с выражением i + j? Где я бы назначил j значение проверяемого числа (вот что мне интересно, как я мог сделать. Это не так, как я собираюсь принять ввод пользователя, я просто перебираю первые 1000 чисел и проверяя их).
В книге также есть некоторые другие практические проблемы, с которыми мне нужно обратиться за помощью, но сейчас я остановлюсь только на этой.