Combien de fois de suite cet entier est divisible par 2
Bonjour à tous,
Pour m’entraîner, je me suis amusé à créer une suite de nombre de 1 à 1000, et à catégoriser chacun d'eux par le nombre de fois ou ce dernier est divisible par 2.
Cependant, ayant du utiliser des set() car de nombreuses copies de nombres se créaient (je n'ai pas réussi à savoir pourquoi), les même nombre se retrouvent plusieurs fois sur plusieurs catégories. Exemple : Le nombre 128 se retrouve dans la catégorie "Divisible 2 fois par 2", puis dans "Divisible 3 fois par 2", puis dans "Divisible 4 fois par 2", etc (je me suis arrêté à 7). Or, j'aimerais que "128" ne se trouve uniquement dans la catégorie "Divisible par 7" ...
Voici mon code (bien sur, il est améliorable) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
deux = set()
trois = set()
quatre = set()
cinq = set()
six = set()
sept = set()
SUPsept = set()
compt = 0
nombre = 0
while nombre < 1000:
nombre = nombre + 1
test = nombre
compt = 0
while test % 2 == 0:
test = test / 2
compt = compt + 1
if compt == 2:
deux.add(nombre)
if compt == 3:
trois.add(nombre)
if compt == 4:
quatre.add(nombre)
if compt == 5:
cinq.add(nombre)
if compt == 6:
six.add(nombre)
if compt == 7:
sept.add(nombre)
if compt > 7:
SUPsept.add(nombre)
pass
deux_sorted = sorted(deux)
trois_sorted = sorted(trois)
quatre_sorted = sorted(quatre)
cinq_sorted = sorted(cinq)
six_sorted = sorted(six)
sept_sorted = sorted(sept)
SUPSept_sorted = sorted(SUPsept)
print("\n\n")
print("------------- DIVISIBLE 2 FOIS-------------")
print(deux_sorted)
print("\n\n")
print("------------- DIVISIBLE 3 FOIS-------------")
print(trois_sorted)
print("\n\n")
print("------------- DIVISIBLE 4 FOIS-------------")
print(quatre_sorted)
print("\n\n")
print("------------- DIVISIBLE 5 FOIS-------------")
print(cinq_sorted)
print("\n\n")
print("------------- DIVISIBLE 6 FOIS-------------")
print(six_sorted)
print("\n\n")
print("------------- DIVISIBLE 7 FOIS-------------")
print(sept_sorted)
print("\n\n")
print("------------- DIVISIBLE > 7 FOIS-------------")
print(SUPSept_sorted)
print("\n\n") |