用多个数字测试可分性

ken*_*ong 5 python python-3.x

在Python中,有没有办法测试一个数字是否可被多个数字整除,而没有为每个因子写出模数运算?

更具体地说,是否有更好的方法来编写此代码而不是键入i%n == 0九十次?

if i % 11 == 0 and i % 12 == 0 and i % 13 == 0 ... and i % 100 == 0:
    print(i)
Run Code Online (Sandbox Code Playgroud)

谢谢!

pil*_*her 8

使用all()和生成器表达式:

if all(i % n == 0 for n in range(11, 101)):
    print(i)
Run Code Online (Sandbox Code Playgroud)

  • 哇,我们最终得到完全相同的代码字符,差异为10秒.我想这确实显示了"禅宗之谜"的一部分:"应该有一个 - 最好只有一个 - 明显的方式来做到这一点." (5认同)
  • 没有.如果它可以被产品整除,那么它可以被每个因素整除,但反过来不一定正确,除非你只是检查素因子. (2认同)