栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python求一个小于该自然数的所有素数(或质数)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python求一个小于该自然数的所有素数(或质数)

for i in range(2,n):
    for j in range(2,i):
        if i%j==0 :
           break
    else:
            q.append(i)

print(i)

-------------下面附质素相加等于自然数,且相减最小-----------

方法一:

a = int(input())   
b = []
for i in range(2, a ):
    for j in range(2, i):
        if i % j == 0:
            break
    else:

        b.append(i)                #先求出所有的质数列表
su=1000                  #此值要大于输入的值a
for y in b:            #去所有质数进行依次匹配

    if (a-y) in b:   #判断减法后的值也在列表里及也是质数
        k=a-2*y
        if k>=0 and su>k:   #求相互减去后值最小,这里也可以取相加最大,根据要求自行改变

            su=k    
print((a-su)//2)
print((a-((a-su)//2)))

方法二(取巧):

n = int(input())
        prime = []
        for i in range(int(n/2), 1,-1):     #取值一半,然后从大到小进行判断,生成的列表 默认按从到到小进行排序,按照最大的质数相减,值最小规则
            for x in range(2,i):
                if i%x == 0 or (n-i)%x == 0:
                    break
            else:
                prime.append(i)
        print(prime[0])
        print(n-prime[0])

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/926115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号