Avatar ·

Problème «Plus petit diviseur premier»

📁 Sujets avancés sur Python, erreur, Développement de bots (Telegram, Discord)

Je viens tout juste de commencer à étudier Python sur la plateforme Sirius. J'ai réussi à résoudre tous les autres problèmes du thème «while», sauf un problème qui m'empêche de passer aux thèmes suivants. Le problème «Plus petit diviseur premier d'un nombre».

Condition : Soit un entier, au moins égal à 2. Affichez son plus petit diviseur premier. Vous ne pouvez pas utiliser de bibliothèques supplémentaires (math, etc.) !

Données d'entrée : Un entier positif N <= 2*10 à la puissance 9 est saisi.

Données de sortie : Affichez la réponse au problème.

J'ai essayé de le résoudre en écrivant un code avec while, mais ma réponse n'est pas acceptée en raison d'un temps d'exécution trop long du programme. Il est recommandé d'organiser une boucle qui parcourt les diviseurs jusqu'à la racine du nombre N : while i*i <= N:, mais je n'arrive pas à comprendre comment faire.

Mon code Python (donne l'erreur «Le programme s'exécutait trop longtemps et a été interrompu» ou «Le programme génère une erreur lors de l'exécution»).