Python求解素数问题
author:Starry锐
问题描述:
之前看到一道与素数有关的编程题,我一开始把问题分解为
- 定义一个函数
def is_prime(n):
判断素数并将素数存入list - 用一个for循环对符合条件的素数对进行计数
下面说说我是咋想的,一开始我想面向百度编程,直接从网上找现成的判断素数函数,完成第一步。后来找了找发现,好几个网上的函数都有问题,调了半天发现要不是 error 要不就会把一些不是素数的数也放进来。
想了想还是自己写吧
于是。。。我上网复习了一下素数的概念。。。(对不起我菜)
这里用我自己的话来说一下
素数就是除了1和它本身,不能被其他数整除的数
给出我写的判断素数的函数
def is_prime(n):
p=[2,]#这里要初始化p,由于下边的循环无法将n=2的情况判断为素数,故先加上
if n<=1:
p=p
for i in range(2,n):#这里无法判断n=2时是素数,因为range(2,2)无法迭代
for j in range (2,i):#j的范围2到i-1
if i%j==0:
break#break后边不加;
if j==i-1:#什么原理??
#如果j迭代到i-1,即j从2到i-1都无法满足i%j==0,说明i是素数
p.append