在编程问题中,我们或许都碰到过这个问题,下面针对于这个问题来阐述一下我
的方法:首先,定义了一个名为is_prime的函数,它接受一个数字n作为参数。
再通过一些简单的条件判断排除了小于等于 1 的数字和小于等于 3 的数字(因
为 1 不是素数,2 和 3 是素数)。然后,检查数字是否可以被 2 或 3 整除,
如果可以,则返回False表示不是素数。接下来,使用一个循环从 5 开始,每次
增加 6,直到i的平方大于n(因为我们是以6为一个循环,我们首先排除了6
的几个公因数,这样在一个循环数的区域里剩下的只有我们需要的数字,例如:
i=5,而i*i就等于25,在1-25的区间里,首先排除123,紧接着再排除2 3 5的
倍数,这样下来只剩下5 7 11 13 17 19 23这几个数字,从而进入while循环里,
再紧接着排除5和7的倍数,然后再排除(5+6X)的倍数,X是正整数,这样就
把所有的有因数的数字排除,从而只剩下素数)。在循环中,检查数字是否可以
被i或i+2整除,如果可以,则返回False表示不是素数。如果循环结束后都没有
找到可以整除n的数,则返回True表示n是素数。
代码如下:
def is_prime(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
运行结果如下:
最后很感谢您的观看,希望我的过程对您会有帮助!