Primfaktoren finden

#include <iostream>
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);  
}

Ich versuche die Primfaktoren der Zahl 600851475143 zu finden, die von angegeben werdenProblem 3 auf Project Euler (es fragt nach dem höchsten Primfaktor, aber ich möchte alle finden). Wenn ich jedoch versuche, dieses Programm auszuführen, erhalte ich keine Ergebnisse. Hat es damit zu tun, wie lange mein Programm für eine so große Zahl benötigt oder sogar mit der Zahl selbst?

Welche Methoden sind effizienter, um dieses Problem zu lösen, und haben Sie Tipps, wie ich zu diesen eleganteren Lösungen gelangen kann, wenn ich ein Problem ausarbeite?

Vielen Dank wie immer!

Antworten auf die Frage(12)

Ihre Antwort auf die Frage