了解优雅素数测试仪

时间:2019-07-12 09:11:27

标签: python python-3.x

我是Python的新手,并通过一些问题进行自我测试。出现的一个方法是测试用户输入的数字是否为质数。这很容易,但是一个人提出了一行代码作为解决方案。


import math

num = int(input("Enter a number greater than 2 "))

if sum([True if num%factor == 0 else False for factor in ([2] + list(range(3,int(math.sqrt(num)),2)))]):
  print("Number is composite")
else:
  print("Number is prime")

我了解其中的一部分:如果{number / iterations)的余数为0,则if语句为True,否则为False,其中唯一需要检查的迭代是2-> sqrt(number)跳过所有偶数。

但是,我不知道如何在if语句开始时求和运算符。我假设它可以在True(1)/ False(0)语句上运行,但是这种交互如何进行,以及如何影响if / else语句?

0 个答案:

没有答案