J'ai besoin de tester si chaque nombre de 1 à 1000 est un multiple de 3 ou un multiple de 5. La façon dont je pensais faire cela serait de diviser le nombre par 3, et si le résultat est un entier, il le ferait être un multiple de 3. Idem avec 5.
Comment 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
Réponses:
Vous faites cela en utilisant l'opérateur de module,
%
évalue true si et seulement si
n
est un multiple exact dek
. 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é.
la source
0 == 0*5
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 etn % 2 != 0
signifie que n n'est pas exactement divisible par 2.la source
J'ai eu la même approche. Parce que je n'ai pas compris comment utiliser l'opérateur 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 donné.
si n% 3 == 0 * Cela veut dire, si mon nombre (n) est divisible par 3 laissant un reste 0.
Ajoutez ensuite votre relevé (impression, retour) et continuez votre
la source
Vous pouvez utiliser l' opérateur% pour vérifier la divisiblité d'un nombre donné
Le code pour vérifier si donné non. est divisible par 3 ou 5 quand non. moins de 1000 est indiqué ci-dessous:
la source
Ce code semble faire ce que vous demandez.
Ou quelque chose comme
Ou un certain nombre de choses.
la source
la source
x=10000000000000000; b = str(x/(x-1)); b
dans l'interpréteur python.Pour les petits nombres, tout
n%3 == 0
ira bien. Pour les très grands nombres, je propose de calculer d'abord la somme croisée, puis de vérifier si la somme croisée est un multiple de 3:la source
Essaye ça ...
la source
jinja2 modèle fizzbuz:
la source
Le moyen le plus simple est de tester si un nombre est un entier
int(x) == x
. Sinon, ce que David Heffernan a dit.la source