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])

本文介绍了两种Python方法来找到小于给定自然数的所有素数,并找到这些素数中相减得到最小值的一对。方法一是通过遍历和筛选质数,方法二是从大到小遍历并寻找合适的配对。最后输出这两个质数及其相减的最小值。
3894

被折叠的 条评论
为什么被折叠?



