J'essaie d'écrire un code qui me permet de trouver les premiers multiples d'un nombre. C'est l'une de mes tentatives:
def printMultiples(n, m):
for m in (n,m):
print(n, end = ' ')
J'ai compris qu'en mettant for m in (n, m):
, il parcourrait la boucle quel que soit le nombre qui était m
.
def printMultiples(n, m):
'takes n and m as integers and finds all first m multiples of n'
for m in (n,m):
if n % 2 == 0:
while n < 0:
print(n)
Après plusieurs recherches, je n'ai pu trouver qu'un exemple de code en Java. J'ai donc essayé de le traduire en python, mais je n'ai obtenu aucun résultat. J'ai le sentiment que je devrais utiliser la fonction range()
quelque part, mais je ne sais pas où.
Si vous essayez de trouver les premiers multiples count
de m
, voici ce qui fonctionnerait:
def multiples(m, count):
for i in range(count):
print(i*m)
Sinon, vous pouvez le faire avec une plage:
def multiples(m, count):
for i in range(0,count*m,m):
print(i)
Notez que ces deux éléments démarrent les multiples à 0
- si vous souhaitez plutôt démarrer à m
, vous devez le décaler autant:
range(m,(count+1)*m,m)
Est-ce que ça fait ce que tu veux?
print range(0, (m+1)*n, n)[1:]
Pour m = 5, n = 20
[20, 40, 60, 80, 100]
Ou mieux encore,
>>> print range(n, (m+1)*n, n)
[20, 40, 60, 80, 100]
Pour Python3 +
>>> print(list(range(n, (m+1)*n, n)))
[20, 40, 60, 80, 100]
Pour les dix premiers multiples de 5, disons
>>> [5*n for n in range(1,10+1)]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Basé sur des concepts mathématiques, je comprends que:
n
, ayant 0
comme reste, sont tous des multiples de n
Par conséquent, le calcul suivant s’applique également en tant que solution (multiples compris entre 1 et 100):
>>> multiples_5 = [n for n in range(1, 101) if n % 5 == 0]
>>> multiples_5
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
Pour en savoir plus:
def multiples(n,m,starting_from=1,increment_by=1):
"""
# Where n is the number 10 and m is the number 2 from your example.
# In case you want to print the multiples starting from some other number other than 1 then you could use the starting_from parameter
# In case you want to print every 2nd multiple or every 3rd multiple you could change the increment_by
"""
print [ n*x for x in range(starting_from,m+1,increment_by) ]