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

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

仅当且仅当nk的正倍数时,才计算为真。在初等数学中,这称为除法的余数。

在您当前的方法中,您执行除法,结果将是

  • 如果使用整数除法,则始终为整数,或者
  • 如果使用浮点除法,则始终使用浮点。

这只是测试可分割性的错误方法。


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


我也有同样的方法。因为我不知道如何使用模块(%)运算符。

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>


最简单的方法是测试一个数字是否是整数,它是int(x) == x。否则,大卫·赫夫南所说的。


试试这个…

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