python素数生成函数,Python生成素数

如何用Python编写一个素数环?

代码:

站在用户的角度思考问题,与客户深入沟通,找到山东网站设计与山东网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册虚拟主机、企业邮箱。业务覆盖山东地区。

n = int(input("请输入最大数n:"))

lists = [[1]]#多个素数环

surplusnum = list(range(1,n+1)) #剩余的数

def sumisprime(x, y):

#x与y之和是否是素数

isprime=True#是否是素数

s = x + y#和

for i in range(2, int(s**0.5)+1):

#素数判定法:从2开始直到此数的开方内的整数都不能被该数整除,则此数为素数

if s%i == 0:#能被整除

isprime = False#不是素数

break#跳出循环

return isprime#返回后否是素数(是:True,否:False)

changelast=lambda listx,addvalue:listx[0:-1]+[addvalue]#改变列表末尾的函数

while len(lists[0] if len(lists) else [0]*n) n:#当素数环长度小于最大数时

n2 = len(lists[0]) #n2为判定,理论当前列表长度最大值

for listn in lists:#遍历各个可能的素数环

surplusnum=list(range(1,n+1))#默认值

for j in listn:#遍历当前列表的数

surplusnum.remove(j)#剩余的数中删除此数

for i in surplusnum:#遍历剩余的数

if sumisprime(listn[n2-1], i):#最后一个数与它的和是素数

if len(listn) == n2:#如果现在这个列表是没有被添加过的

listn.append(i)#增加在这个列表

else:#如果该列表已经被添加过

lista = changelast(listn, i)#要加入的列表

if lista not in lists:#如果不在这个列表里

lists.append(lista)#添加到另一个列表

for listn in lists.copy():#防止lists被删造成影响

if len(listn) != n2+1:#如果长度没有达到预期(+1)

lists.remove(listn)#删除该列表(取消此可能性)

if len(lists[0]) == n:#已经符合条件

for listn in lists:#遍历列表,检查首尾

if sumisprime(listn[-1], listn[0]):#如果首尾相加等于素数

print(listn)#环成立,打印出来

break#结束循环

说明:经试验,都没什么问题,n=12也能很快运算完(但我劝你不要打出来),如果你只需要1个素数环,可以把break的缩进调到print(listn)并列。

python求素数

not 0表示非0 返回真,0返回假

print reduce(

lambda l,y: #递减的操作函数

(not 0 in map(lambda x:y % x, l)) and (l+[y]) or l, #l是一个列表[], 结果l中后加入的数不能被前数整除,被整除则不添加后数

xrange(2,1000), #范围[2,1000)

[] )

过程是:

测试到6, 就把6依次整除之前的l=[2,3,5] ,除2余0,就放弃6。l仍是[2,3,5]

测试到7, 就把7依次整除之前的l=[2,3,5] ,除2都不余0,加入6。l变成[2,3,5,7]

最后得到一个纯素数的列表[];

Python程序,定义一个 prime() 函数求整数 n 以内(不包括n)的所有素数(1不是素数)

定义一个 prime() 函数求整数 n 以内(不包括n)的所有素数(1不是素数),br并返回一个按照升序排列的素数列表。使用递归来实现一个二分查找算法br函数bi_search(),该函数实现检索任意一个整数在 prime() 函数生成的素数列br表中位置(索引)的功能,并返回该位置的索引值,若该数不存在则返回 -1。brbr输入格式:br第一行为正整数 nbr接下来若干行为待查找的数字,每行输入一个数字br输出格式:br每行输出相应的待查找数字的索引值br输入样例:br10br2br4br6br7br输出样例:br0br-1br-1br3br

python求1~100之间的所有素数之和

解题思路:需要实现两个函数,一个是判断数字是否是素数;一个是求和函数。

实现函数,判断是否是素数,is_prime,具体代码如下:

def is_prime(num):

"""

判断是否是素数.

:param num:

:return:

"""

result = True

# 质数大于 1

if num 1:

  # 查看因子

  for i in range(2, num):

      if (num % i) == 0:

          result = False

          break

  else:

      result = True

# 如果输入的数字小于或等于 1,不是质数

else:

  result = False

return result

实现函数,计算数字start到end之间的所有素数之和,sum,具体代码如下:

def sum(start, end):

"""

求闭区间[start, end]之间的素数之和.

:param start:

:param end:

:return:    """

result = 0;

for i in range(start, end + 1):

  if is_prime(i):

      print(i)

      result = result + i

return result

在main函数中调用求和,代码如下:

if __name__ == '__main__':

num = 8

print(is_prime(num))

num = 5

print(is_prime(num))

print(sum(1, 5))

完整 代码如下:

如何用python定义一个函数,列举出100以内的素数?

def is_prime(m):

"""判断m是否素数"""

for i in range(2,int(m**(1/2))+1):

if m % i == 0:

return False

else:

return True

# 求100内所有素数

for i in range(2, 100):

if is_prime(i):

print(i)

程序缩进如图所示

python判断是否为素数的函数?

具体步骤如下:

1、打开pycharm,点击file,点击new,新建一个空白的pyrthon文件:

2、这里开始编写判断素数的代码,判断素数的上限最准确的应该使用平方根取整加一,此处用到两层循环,第一层遍历0到100的数,第二层循环判断满足条件的素数。这里有一个else要注意是和for对齐而不是if对齐,如果和if对齐只要不能被2整除就会被添加到列表中了,而且会多次添加:

3、右键点击鼠标,点击“run demo”,运行编写好的python文件,在下方的控制台就可以看见输出后结果:


本文标题:python素数生成函数,Python生成素数
本文网址:http://hbruida.cn/article/phsehc.html