`%`运算符

时间:2009-02-20 22:43:06

标签: python math

我想找到所有数字除以1和5之间的所有数字。我如何编写程序,以便如果'start'的余数除以x经过的所有数字等于0表示将打印开始。是否有任何语法可以计算我正在寻找的东西。感谢。

导入数学

def main():
    one = 1
    start = 1
    while one == 1:
        for x in range(1, 5):
            if start % x == 0:
                print start

            start += 1

2 个答案:

答案 0 :(得分:3)

首先,你似乎要求所有的60的倍数。这些可以很容易地呈现(注意,这是一个无限循环):

from itertools import count

for i in count():
    print i*60

如果你只是简化了你的例子,这是你所写内容的一个更加pythonic(和正确)的解决方案(再次是一个无限循环):

from itertools import count

# put any test you like in this function
def test(number):
    return all((number % i) == 0 for i in range(1,6))

my_numbers = (number for number in count() if test(number))

for number in my_numbers:
    print number

您的原始代码中存在严重错误:range(1,5)等于[1, 2, 3, 4],因此无法测试数字是否可以被5分割!

PS:您之前使用过那个疯狂的one = 1构造,我们向您展示了如何以更好的方式对其进行编码。请从我们的答案中学习!

答案 1 :(得分:0)

如果我理解正确你想要这样的东西:

start = 1
while (True):
    flgEvenlyDiv = True
    for x in range(1, 5):
            if (start % x != 0):
                    flgEvenlyDiv = False
                    break

    if (flgEvenlyDiv == True):
                    print start
    start += 1