如何检查数字是否可以被另一个数字(Python)整除?
我需要测试从1到1000的每个数字是3的倍数还是5的倍数。我认为我会这样做的方式是将数字除以3,如果结果是整数,那么它将是3的倍数。与5相同。如何检查数字是否可以被另一个数字(Python)整除?
如何测试数字是否是整数?
这里是我当前的代码:
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
当且仅当n
是k
的整数倍计算为真。在初等数学中,这被称为分部的剩余部分。
在你现在的做法,你执行除法,其结果将是要么
- 始终如果使用整数除法的整数,或者
- 总是浮如果您使用浮点除法。
这只是测试可分性的错误方法。
最简单的方法是测试一个数是否是一个整数是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
正在计算交叉和使用模数运算真的比直接使用模数运算更快吗?如果是这样,你不应该递归地调用你的函数,直到数字“足够小”为止吗? – honk
您可以使用%运营商检查一个给定数量的divisiblity
检查是否给出否的代码。可以由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
尝试......
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);
}
}
这是谁给谁编码java –
此代码用来做你所要求的。
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)
或任何数目的事情。
回答你的问题:选择和ctrl + K缩进。这次我为你做了这个。 –
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>
要求提供Python解决方案。 –
我有同样的做法。因为我不懂如何使用模块(%)操作符。
6%3 = 0 *这意味着,如果你把6 3,你不会有剩余,3是6
的因素现在,你必须把它与你的特定问题。
if n%3 == 0 *这就是说,如果我的数字(n)可以被3整除而剩下0的余数。
添加您的然后(打印,返回)语句,然后继续你的
在Python 2.x中,整数除法总是产生一个整数。 –
您应该打印“Fizz”和“Buzz” – wim
Project Euler Problem 1? –