¿Cómo verifica si un número es divisible por otro número (Python)?

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 entre 3, y si el resultado es un número entero, entonces se un múltiplo de 3. Lo mismo con 5.

¿Cómo puedo probar si el número es un número 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 

Haces esto usando el operador de módulo, %

 n % k == 0 

evalúa verdadero si y solo si n es un múltiplo exacto de k . En matemáticas elementales esto se conoce como el rest de una división.

En su enfoque actual, realiza una división y el resultado será:

  • siempre un entero si usas la división entera, o
  • Siempre un flotador si usas división de punto flotante.

Es la manera incorrecta de probar la divisibilidad.

Simplemente puede usar el operador % Modulus para verificar la divisibilidad.
Por ejemplo: n % 2 == 0 significa que n es exactamente divisible entre 2 y n % 2 != 0 significa que n no es exactamente divisible entre 2.

Puede usar el operador% para verificar la división de un número dado

El código para comprobar si dado no. Es divisible por 3 o 5 cuando no. a continuación se da menos de 1000:

 n=0 while n<1000: if n%3==0 or n%5==0: print n,'is multiple of 3 or 5' n=n+1 

Este código parece hacer lo que estás pidiendo.

 for value in range(1,1000): if value % 3 == 0 or value % 5 == 0: print(value) 

O algo como

 for value in range(1,1000): if value % 3 == 0 or value % 5 == 0: some_list.append(value) 

O cualquier cantidad de cosas.

Tuve el mismo enfoque. Porque no entendía cómo usar el módulo (%) operador.

6% 3 = 0 * Esto significa que si divide 6 por 3 no tendrá un rest, 3 es un factor de 6.

Ahora tienes que relacionarlo con tu problema dado.

si n% 3 == 0 * Esto está diciendo, si mi número (n) es divisible por 3, quedando un rest de 0.

Agregue su statement de then (imprimir, devolver) y continúe con su

Para números pequeños, n%3 == 0 estará bien. Para números muy grandes, me propongo calcular primero la sum cruzada y luego verificar si la sum cruzada es un múltiplo de 3:

 def is_divisible_by_3(number): if sum(map(int, str(number))) % 3 != 0: my_bool = False return my_bool 

jinja2 plantilla fizzbuz:

 
    {% for x in range(1,n+1) %} {% set fizzbuzz_rpm = x %} {% if x % 3 == 0 and x % 5 == 0 %} {% set fizzbuzz_rpm="FizzBuzz" %} {% elif x % 3 == 0 %} {% set fizzbuzz_rpm="Fizz" %} {% elif x %5 == 0 %} {% set fizzbuzz_rpm="Buzz" %} {% endif %}
  1. {{fizzbuzz_rpm}}
  2. {% endfor %}

Prueba esto …

 public class Solution { public static void main(String[] args) { long t = 1000; long sum = 0; for(int i = 1; i 

La forma más sencilla es probar si un número es un entero es int(x) == x . De lo contrario, lo que dijo David Heffernan.