在if语句中实现for循环

时间:2018-04-17 16:56:56

标签: python algorithm range

我试图解决项目的问题:

  

2520是可以除以每个数字的最小数字   从1到10没有任何余数。什么是最小的积极   可以被1到20的所有数字整除的数字?

我已经提出了下面的python解决方案,但有没有办法循环if中的数字而不必写所有这些。

def smallest_m():
    start=1
    while True:
        if start%2==0 and start%3==0 and start%4==0 and start%5==0 and start%5==0 and start%6==0 and start%7==0 and start%8==0 and start%9==0 and start%10==0 and start%11==0 and start%12==0 and start%13==0 and start%14==0 and start%15==0 and start%16==0 and start%17==0 and start%18==0 and start%19==0 and start%20==0:
            print(start)
            break
        else:
            start+=1

smallest_m()

3 个答案:

答案 0 :(得分:1)

您可以使用生成器表达式和all函数:

testVector(indices.toIndexedSeq)

答案 1 :(得分:1)

这是一种利用发电机的解决方案。我看到的最小数字是232792560。

def smallest_m(n):
    for k in range(20, n, 20):
        match = True
        for i in range(1, 21):
            if k % i != 0:
                match = False
                break
        else:
            if match:
                yield k

res = next(smallest_m(2432902008176640001))

# 232792560

答案 2 :(得分:0)

试试这个

n = 2520
result = True

for i in range(1, 11):
    if (n % i != 0):
        result = False

print(result)