#include
using namespace std; void whosprime(long long x) { bool imPrime = true; for(int i = 1; i <= x; i++) { for(int z = 2; z <= x; z++) { if((i != z) && (i%z == 0)) { imPrime = false; break; } } if(imPrime && x%i == 0) cout << i << endl; imPrime = true; } } int main() { long long r = 600851475143LL; whosprime(r); } Я пытаюсь найти простые множители числа 600851475143, указанные в Задаче 3 в проекте Эйлера (, он запрашивает самый высокий простой множитель, но я хочу найти их все ). Однако, когда я пытаюсь запустить эту программу, я не получаю никаких результатов. Связано ли это с тем, как долго моя программа обрабатывает такое большое число, или даже с самим числом?
Кроме того, каковы некоторые более эффективные методы решения этой проблемы, и есть ли у вас какие-либо советы относительно того, как я могу использовать эти более элегантные решения, когда я решаю проблему?
Как всегда, спасибо!