求某一个数字范围内的素数,是我们写程序过程中经常遇见的一个问题,今天向大家介绍一种素数判断的简单方法。
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
因此,判断一个数是不是素数可以有两种思路:
第一种思路:判断一个整数N是否是素数,只需用 N 去除 2 ~ N-1 之间的每一个整数,如果都不能被整除,那么N 就是一个素数。
第二种思路:判断方法。N 不必被 2 ~ N-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果 m 不能被 2 ~间任一整数整除,N 必定是素数。例如判别 19是是否为素数,只需使 19 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 19是素数。
原因:因为如果 N 能被 2 ~ N-1 之间任一整数整除,其二个因子必定有一个小于或等于,另一个大于或等于。例如 36 能被 2、3、4、6、9、12、18 整除,36=2*18,2 小于,8 大于,36=3*12,3小于,12大于,36=4*9,4小于,9大于,36=6*6,都等于,因此只需判定在 2~之间有无因子即可。
按照以上思路,可以用以下程序求出2-500之间的素数:
for i in range(2,501):
flag=1
for j in range(2,int(i**0.5+1)):
if i%j==0:
flag=0
else:
continue
if flag==1:
print(i,end=" ")
其中flag为标志变量。