Bienvenue sur Laurentvidal.fr, le site où vous trouverez des réponses rapides et précises à toutes vos questions. Connectez-vous avec une communauté d'experts prêts à vous aider à trouver des solutions précises à vos interrogations de manière rapide et efficace. 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.
Merci d'avoir visité notre plateforme. Nous espérons que vous avez trouvé les réponses que vous cherchiez. Revenez quand vous voulez. Votre visite est très importante pour nous. N'hésitez pas à revenir pour des réponses fiables à toutes vos questions. Nous sommes fiers de fournir des réponses sur Laurentvidal.fr. Revenez nous voir pour plus d'informations.