python 素数(质数)
素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。即只能被1和自己本身整除的数。
判定一个数是否为素数的基本思路:
1、了解素数的定义,一个正整数n若为素数,则它的约数只能是1和n本身,
2、根据定义,我们需要将这个数除以从2到n-1之间的全部正整数,如果全部都不能整除,则这个数便是素数。若是其中有一个数能被整除,则这个数是个合数,而不是素数。 因此,用求余算法%不失为一种有效的方法。
3、根据上述原理,我们可以用while循环来实现
n = int(input("请输入要判断的整数:")) i = 2 #注意,为什么i的取值范围是(2,n/2+)而不是(2,n-1)呢?其实取(2,n-1)也是可以行的,只是运算量比较大而已,浪费资源。 #因为当i>n/2时,n是不可能整除i的,所以i的最大取值范围到n/2即可,这样能大大减少运算量。(思路可以) while i <= int(n/2)+1: if n%i == 0: break #如果i仍然不能被n整除,那么就自增1,继续执行求余循环,直到i取到最大值为止 i += 1 #如果在(2,n/2)之间的所有数字都不能被n整除,那么就可以认定这个数是素数。 else: print("%d是素数" % n)