你如何检查数字是否可以被另一个数字(Python)整除?

我需要testing从1到1000的每个数字是3的倍数还是5的倍数。我想这样做的方式是将数字除以3,如果结果是整数,那么它会是5的倍数。

如何testing数字是一个整数?

这是我现在的代码:

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 

您可以使用模运算符%

 n % k == 0 

当且仅当nk的精确倍数时才评估为真。 在小学math中,这被称为师的余数。

在你目前的做法,你执行一个部门,结果将是或者

  • 如果使用整数除法,则总是一个整数
  • 如果你使用浮点除法,总是一个浮点数。

这只是testing可分性的错误方法。

您可以简单地使用% Modulus运算符来检查可分性。
例如: n % 2 == 0表示n可以被2整除, n % 2 != 0表示n不能被2整除。

你也可以看看编程中使用的操作符 。

您可以使用%运算符来检查给定数字的可分性

代码来检查是否给定不。 不可以被3或5整除。 下面给出不到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 

这段代码似乎是做你所要求的。

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

或者类似的东西

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

或者任何数量的东西。

最简单的方法是testing一个数是否是一个整数是int(x) == x 。 否则,大卫赫芬南说。

对于小数字n%3 == 0将罚款。 对于非常大的数字,我build议首先计算交叉和,然后检查交叉和是否是3的倍数:

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

尝试这个 …

 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); } } 

jinja2模板fizzbuz:

 <form> <ol> {% 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 %} </ol> </form>