Je dois tester si chaque nombre de 1 à 1000 est un multiple de 3 ou un multiple de 5. La façon dont je pensais procéder consisterait à diviser le nombre par 3, et si le résultat est un entier, alors ce serait être un multiple de 3. Pareil avec 5.
Comment puis-je tester si le nombre est un entier?
voici mon code actuel:
n = 0
s = 0
while (n < 1001):
x = n/3
if isinstance(x, (int, long)):
print 'Multiple of 3!'
s = s + n
if False:
y = n/5
if isinstance(y, (int, long)):
s = s + n
print 'Number: '
print n
print 'Sum:'
print s
n = n + 1
Vous faites cela en utilisant l'opérateur de module, %
n % k == 0
évalue true si et seulement si n
est un multiple exact de k
. En mathématiques élémentaires, cela s'appelle le reste d'une division.
Dans votre approche actuelle, vous effectuez une division et le résultat sera soit
C'est juste la mauvaise façon de tester la divisibilité.
Vous pouvez simplement utiliser l'opérateur %
Modulus pour vérifier la divisibilité.
Par exemple: n % 2 == 0
signifie que n est exactement divisible par 2 et n % 2 != 0
signifie que n n’est pas exactement divisible par 2.
J'ai eu la même approche. Parce que je ne comprenais pas comment utiliser l'opérateur de module (%).
6% 3 = 0 * Cela signifie que si vous divisez 6 par 3, vous n'aurez pas de reste, 3 est un facteur de 6.
Maintenant, vous devez le relier à votre problème.
si n% 3 == 0 * Ceci est dit, si mon nombre (n) est divisible par 3 en laissant un 0 restant.
Ajoutez votre déclaration then (print, return) et continuez votre
Vous pouvez utiliser% opérateur pour vérifier la divisibilité d'un nombre donné
Le code pour vérifier si donné non. est divisible par 3 ou 5 quand non. moins de 1000 est donné ci-dessous:
n=0
while n<1000:
if n%3==0 or n%5==0:
print n,'is multiple of 3 or 5'
n=n+1
Ce code semble faire ce que vous demandez.
for value in range(1,1000):
if value % 3 == 0 or value % 5 == 0:
print(value)
Ou quelque chose comme
for value in range(1,1000):
if value % 3 == 0 or value % 5 == 0:
some_list.append(value)
Ou n'importe quel nombre de choses.