如何检查一个数字是否可被另一个数字整除?

我需要测试从1到1000的每个数字是3的倍数还是5的倍数。

我在 Python2.x 中尝试了这段代码:

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

这个想法是尝试除以数字,看看结果是否是一个整数。但是,我没有得到预期的结果。

如何测试该数字是否为整数?


在2.x 中,像这样的除法将产生一个整数,丢弃其余部分; 请参阅 如何强制除法为浮点数? 除法一直四舍五入到0?了解详细信息。

在3.x 中,除法将生成一个浮点值; 结果是 不是“一个整数”即使是一个整数,因此 isinstance检查将失败。详情请参阅 为什么整数除法产生一个浮点数而不是另一个整数?

如果您需要整数除法的余数,而不仅仅是测试整除性,请参阅 求一个数的除法余数

588002 次浏览

可以使用模运算符 %进行此操作

n % k == 0

当且仅当 nk的精确倍数时,计算为 true。在初等数学中,这被称为除法余数。

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

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

这是测试整除性的错误方法。

最简单的方法是测试一个数字是否是一个整数是 int(x) == x

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

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

可以使用 % 运算符检查给定数字的整除性

当编号小于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

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

试试这个..。

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

这段代码似乎可以满足您的要求。

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)

或者其他东西。

我采用了相同的方法,因为我不明白如何使用模块(%)运算符。

6% 3 = 0 * 这意味着如果你把6除以3,你就没有余数了,3是6的一个因子。

现在你必须把它和你的问题联系起来。

如果 n% 3 = = 0 * 这是说,如果我的数字(n)可以被3整除,留下一个0余项。

添加 then (print,return)语句,然后继续

a = 1400
a1 = 5
a2 = 3


b= str(a/a1)
b1 = str(a/a2)
c =b[(len(b)-2):len(b)]
c1 =b[(len(b1)-2):len(b1)]
if c == ".0":
print("yeah for 5!")
if c1 == ".0":
print("yeah for 3!")