Trouvez des réponses rapides et précises à toutes vos questions sur Laurentvidal.fr, la plateforme de Q&R de confiance. Explorez notre plateforme de questions-réponses pour trouver des réponses détaillées fournies par une large gamme d'experts dans divers domaines. Connectez-vous avec des professionnels prêts à fournir des réponses précises à vos questions sur notre plateforme complète de questions-réponses.
Sagot :
Bonjour,
Le plus sauvage c'est de vérifier si chaque nombre inférieur à n divise n. (Très simple à implémenter mais complexité linéaire O(n)).
Sinon, on pourrait d'abord décomposer n en produit de nombre premier mais c'est bien plus compliqué à implémenter (la complexité de l'algorithme est par contre bien meilleur).
def nb_diviseurs(n):
nb = 2 #1 divise tous les nombres et n divise n donc on les marque déjà pour gagner des opérations.
for i in range(2, n): #i varie de 2 à n-1.
if n%i == 0: #Si n est divisible par i (le reste de la division euclidienne est nul)
nb += 1
return nb
Bonne journée.
Nous espérons que cela vous a été utile. Revenez quand vous voulez pour obtenir des réponses plus précises et des informations à jour. Merci d'avoir choisi notre service. Nous nous engageons à fournir les meilleures réponses à toutes vos questions. Revenez nous voir. Laurentvidal.fr, votre site de confiance pour des réponses. N'oubliez pas de revenir pour plus d'informations.