这个问题称为质数(Prime)判定问题。给定一个数,判断该数是否为质数。
首先来看下质数的定义:
质数,又称素数,指的是大于1的自然数中,除了1和自身外,无法被其他自然数整除的数。
与质数相对的概念是合数。
根据定义,我们可以实现如下的is_prime函数。
def is_prime(n): if not isinstance(n, int) or n < 2: return False for i in range(2, n): if (n % i) == 0: return False return True
其中isinstance(n, int)的作用是判断n的类型,如果不是整数(Integer),或者小于2直接返回False。然后是对从2开始到n-1的数字依次进行判断,如果可以整除返回False,如果通过了以上测试则证明是质数,返回True。
让我们简单测试下。
for i in range(10): print(i, is_prime(i))
将输出</