首页 > 解决方案 > Python如何缩短我的代码(而不是让它更高效)

问题描述

好的,任务是找到可以被1-20的所有数字整除的最小倍数。

我的代码效率低下,而且,据我所知,它已经完全过时了,因为你可以通过将素数相乘来解决这个问题。

但是我如何使 if 部分更短?

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

标签: if-statement

解决方案


if all(a%x==0 for x in range(2,21)):

推荐阅读