Preciso testar se cada número de 1 a 1000 é um múltiplo de 3 ou um múltiplo de 5. A maneira como pensei que faria isso seria dividir o número por 3 e, se o resultado for um inteiro, então seja um múltiplo de 3. Mesmo com 5.
Como faço para testar se o número é um inteiro?
Aqui está meu código atual:
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
Respostas:
Você faz isso usando o operador de módulo,
%
avalia verdadeiro se e somente se
n
for um múltiplo exato dek
. Em matemática elementar, isso é conhecido como o resto de uma divisão.Em sua abordagem atual, você realiza uma divisão e o resultado será
É a maneira errada de testar a divisibilidade.
fonte
0 == 0*5
Você pode simplesmente usar o
%
operador Modulus para verificar a divisibilidade.Por exemplo:
n % 2 == 0
significa n é exatamente divisível por 2 en % 2 != 0
significa n não é exatamente divisível por 2.fonte
Eu tive a mesma abordagem. Porque eu não entendi como usar o operador de módulo (%).
6% 3 = 0 * Isso significa que se você dividir 6 por 3, não terá um resto, 3 é um fator de 6.
Agora você deve relacioná-lo ao seu problema.
if n% 3 == 0 * Isso quer dizer, se meu número (n) é divisível por 3 deixando um 0 resto.
Adicione sua declaração de então (imprimir, retornar) e continue seu
fonte
Você pode usar o operador% para verificar a divisibilidade de um determinado número
O código para verificar se dado não. é divisível por 3 ou 5 quando não. menos de 1000 é dado abaixo:
fonte
Este código parece fazer o que você está pedindo.
Ou algo como
Ou qualquer outra coisa.
fonte
fonte
x=10000000000000000; b = str(x/(x-1)); b
no interpretador python.Para números pequenos
n%3 == 0
, tudo bem. Para números muito grandes, proponho calcular primeiro a soma cruzada e depois verificar se a soma cruzada é um múltiplo de 3:fonte
Experimente isso ...
fonte
modelo jinja2 fizzbuz:
fonte
A maneira mais simples é testar se um número é um inteiro
int(x) == x
. Caso contrário, o que David Heffernan disse.fonte