Mon problème est le suivant : Je veux créer un programme qui accepte des nombres entiers supérieurs à 0 et inférieurs à 21, séparés les uns des autres par un espace. Je veux ensuite créer une liste, dans laquelle les nombres premiers seront ajoutés sans aucune modification et les nombres non premiers seront divisés en éléments, qui seront des nombres premiers.
Entrée : 3 6 7 12
Salida: [3, 2, 3, 7, 2, 2, 3]
C'est ce que j'ai trouvé. Lorsque j'essaie d'exécuter le programme avec l'entrée mentionnée ci-dessus, pour 12, il ne sort que 2 et 3 sans autre 2. Quel peut être le problème ici ?
l_prime = [2,3,5,7,11,13,17,19]
l = []
disposable = None
iterate = input().split()
for i in iterate:
a = int(i)
for j in range (0,len(l_prime)):
disposable = j
if a == l_prime[j]:
l.append(l_prime[j])
else:
if a % l_prime[disposable] == 0:
l.append(l_prime[disposable])
a = a / l_prime[disposable]
else:
if a <= 1:
break
else:
disposable += 1
l
J'apprécierai toute aide ! Merci d'avance !