Trouver les facteurs d'un nombre. Ne pas obtenir des résultats précis

Quelqu'un peut-il aider à corriger mon algorithme? Je l'ai testé sur quelques chiffres, et il n'a pas de sortie complète de la factorisation. Pour les nombres avec un grand nombre de facteurs, c'est juste complètement échoue.

int num = 20;

for(int i = 2; i <= num; i++)
{
    if(num%i == 0)
    {
        cout << i << endl;
        cout << num << endl;
        num = num/i;    
    }
}

EDIT: Les deux réponses fournies n'ont pas de travail, toujours pas à obtenir des résultats complets.

EDIT2: Diviseurs VS Facteurs

tout comme une note de côté: merci d'essayer d'être plus précis dans l'avenir. Tout d'abord, il n'est pas "inexactes", c'est incomplètes résultats. Essayer d'ajouter de la sortie attendue pour un exemple (comme "si 15 est l'entrée, la sortie devrait être 1,3,5,15, mais je ne reçois que ..."). Vous n'avez pas besoin de modifier à-dire que les réponses ne sont pas ce que vous voulez, il ya une section de commentaires ci-dessous chaque réponse pour exactement cet effet. Ne vous méprenez pas: Votre question est bonne, mais avec un peu plus d'effort, vous pouvez le rendre plus facile pour tout le monde de comprendre ce que vous voulez et vous aurez de meilleures réponses!

OriginalL'auteur Bob John | 2012-08-16