Necesito probar si cada número del 1 al 1000 es un múltiplo de 3 o un múltiplo de 5. La forma en que pensé que haría esto sería dividir el número por 3, y si el resultado es un número entero, entonces lo haría ser un múltiplo de 3. Lo mismo con 5.
¿Cómo pruebo si el número es un entero?
Aquí está mi código actual:
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
Respuestas:
Haces esto usando el operador de módulo,
%
evalúa verdadero si y solo si
n
es un múltiplo exacto dek
. En matemáticas de primaria, esto se conoce como el resto de una división.En su enfoque actual, realiza una división y el resultado será
Es simplemente la forma incorrecta de probar la divisibilidad.
fuente
0 == 0*5
Simplemente puede usar el
%
operador de módulo para verificar la divisibilidad.Por ejemplo:
n % 2 == 0
significa que n es exactamente divisible por 2 yn % 2 != 0
significa que n no es exactamente divisible por 2.fuente
Tuve el mismo enfoque. Porque no entendí cómo usar el operador del módulo (%).
6% 3 = 0 * Esto significa que si divide 6 entre 3 no tendrá resto, 3 es un factor de 6.
Ahora tienes que relacionarlo con tu problema dado.
if n% 3 == 0 * Esto está diciendo, si mi número (n) es divisible por 3 dejando un resto 0.
Agregue su declaración de entonces (imprimir, devolver) y continúe su
fuente
Puede usar el operador% para verificar la divisibilidad de un número dado
El código para comprobar si se dio no. es divisible por 3 o 5 cuando no. A continuación se da menos de 1000:
fuente
Este código parece hacer lo que está pidiendo.
O algo como
O cualquier cantidad de cosas.
fuente
fuente
x=10000000000000000; b = str(x/(x-1)); b
en el intérprete de Python.Para números pequeños
n%3 == 0
estará bien. Para números muy grandes, propongo calcular primero la suma cruzada y luego verificar si la suma cruzada es un múltiplo de 3:fuente
Prueba esto ...
fuente
plantilla jinja2 fizzbuz:
fuente
La forma más sencilla es comprobar si un número es un número entero
int(x) == x
. De lo contrario, lo que dijo David Heffernan.fuente