How do you check whether a number is divisible by another number (Python)?
我需要测试从1到1000的每个数字是3的倍数还是5的倍数。我想我这样做的方法是将数字除以3,如果结果是一个整数,那么它将是3的倍数。同5.
如何测试数字是否为整数?
这是我的当前代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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 |
您可以使用模数运算符
1 | n % k == 0 |
仅当且仅当
在您当前的方法中,您执行除法,结果将是
- 如果使用整数除法,则始终为整数,或者
- 如果使用浮点除法,则始终使用浮点。
这只是测试可分割性的错误方法。
您可以简单地使用
我也有同样的方法。因为我不知道如何使用模块(%)运算符。
6%3=0*这意味着如果你把6除以3,你就没有余数了,3是6的因数。
现在你必须把它和你的问题联系起来。
如果n%3==0*这就是说,如果我的数字(n)可以被3整除,剩下0个余数。
添加您的then(打印,返回)语句并继续
这段代码似乎可以满足您的要求。
1 2 3 | for value in range(1,1000): if value % 3 == 0 or value % 5 == 0: print(value) |
或者类似的
1 2 3 | for value in range(1,1000): if value % 3 == 0 or value % 5 == 0: some_list.append(value) |
。
或任何数量的东西。
可以使用%运算符检查给定数字的可除性
当编号小于1000时,检查给定编号是否可被3或5整除的代码如下:
1 2 3 4 5 | n=0 while n<1000: if n%3==0 or n%5==0: print n,'is multiple of 3 or 5' n=n+1 |
对少数人来说,1〔4〕是可以的。对于非常大的数字,我建议首先计算交叉和,然后检查交叉和是否是3的倍数:
1 2 3 4 | def is_divisible_by_3(number): if sum(map(int, str(number))) % 3 != 0: my_bool = False return my_bool |
号
Jinja2模板泡沫:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <form> {% 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 %} <li> {{fizzbuzz_rpm}} </li> {% endfor %} </form> |
。
最简单的方法是测试一个数字是否是整数,它是
试试这个…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Solution { public static void main(String[] args) { long t = 1000; long sum = 0; for(int i = 1; i<t; i++){ if(i%3 == 0 || i%5 == 0){ sum = sum + i; } } System.out.println(sum); } } |
。