Avatar ·

Algorithme de recherche de tous les diviseurs d'un nombre

📁 fonction, liste, Sujets avancés sur Python, exemple

Bonjour ! En résolvant un problème, j'ai dû trouver en ligne un algorithme pour rechercher tous les diviseurs d'un nombre. C'est-à-dire que pour huit, il faut renvoyer [1,2,4,8], et non [2,2,2] - la liste des diviseurs. J'ai réécrit cet algorithme à nouveau, je demande aux "camarades plus expérimentés" de me conseiller sur la façon de l'améliorer. Si vous avez le temps ))

def divisorss(n):    from collections import Counter    ls = get_ls(n)                  # for n=1568 -> ls = [2, 2, 2, 2, 2, 7, 7]    pairs = dict(Counter(ls))       #  {2: 5, 7: 2}    from itertools import product, starmap    from operator 

                    
                
Avatar ·

Pour les nombres, & désigne le ET bit à bit (). Dans le système binaire, 2 ** n représente un 1 suivi de n zéros, et (2 ** n - 1) représente n uns. Par exemple, (dec) 32 = (bin) 100000, et (dec) 31 = (bin) 11111. Parmi tous les nombres positifs, seules les puissances de deux n'ont pas de uns en commun avec le nombre précédent. Le code contient une erreur : il considère 0 comme une puissance de deux.

Connectez-vous pour laisser une réponse

Blogs