Algorithme pour trouver Plus grand facteur premier d'un certain nombre

Quelle est la meilleure approche pour calculer le plus grand facteur premier d'un nombre?

Je pense que le plus efficace serait le suivant:

  1. Trouver plus bas nombre premier qui divise proprement
  2. Vérifier si le résultat de la division est le premier
  3. Si non, trouver plus bas suivant
  4. Aller à 2.

Je suis fonder cette hypothèse qu'il soit plus facile de calculer les petits facteurs premiers. Est-ce vrai? Quelles sont les autres démarches dois-je rechercher dans?

Edit: j'ai compris que ma démarche est vaine si il y a plus de 2 facteurs premiers dans le jeu, depuis l'étape 2 échoue lorsque le résultat est un produit de deux nombres premiers, donc un algorithme récursif est nécessaire.

Modifier à nouveau: Et maintenant, je ai réalisé que ce ne soit encore du travail, car le dernier trouvé le premier nombre doit être le plus haut, donc tout autre essai de la non-le premier résultat de l'étape 2 aurait pour résultat un plus petit nombre premier.

  • Mon approche a été de: (1) diviser les grandes, nombre par 2; (2) vérifier si le grand nombre divise de manière égale; 3) si oui, vérifier si le divise par 2 le nombre est premier. Si elle l'est, le retour. (4) Sinon, il suffit de soustraire 1 de l'divisé par 2 nombre de, retour à l'étape 3.
  • 1. trouver n'importe quel nombre qui divise clairement (pour i = 2 à int(sqr(num)) ) 2. diviser par le nombre (num = num/i) et se répètent jusqu'à ce que rien n'est trouvé dans 1.'s de l'intervalle de 3. num est le plus grand facteur de
  • Nous pouvons Diviser avec de petits nombres premiers, et celui qui est, enfin, à gauche, est le Plus grand Facteur Premier (je crois)
InformationsquelleAutor mercutio | 2008-08-22