def sushu(num):
res=True
for x in range(2,num-1):
if num%x==0:
res=False
return res
return res
def jadge(n):
for i in range(1,n+1):
if sushu(i) and sushu(n-i):
return i
list_1 =
for x in list_1:
if not jadge(x):
list_1.pop(list_1.index(x))
print(list_1)
第一次做{:5_100:}做了好久# 判断是否为质数
def is_prime_num(number):
list1 = [] # 如果这个列表长度为0,则为质数
number = int(number)
for i in range(2,number):
if number % i == 0:
list1.append(i)
if len(list1) == 0:
return True # 是质数 为True
else:
return False #不是质数为False
#筛选
def is_prime_adding(number):
number = int(number)
list2 = []
adding = []
for i in range(2,number):
for j in range(i,number):
if i + j == number:
if is_prime_num(i) is True and is_prime_num(j) is True:
list2.append(number)
adding.append()
if len(list2) != 0: # 这里因为list2 为0 ,adding 也一定为0,所以不用判定adding
for each in range(len(list2) -1): #删除list2 中重复的元素
del list2
print(list2)
print(adding) # 打印符合条件的和的组合
# 输入任何范围,可打印出符合的结果
for number in range(31):
is_prime_adding(number)
求版主批改,和优化建议{:5_105:} 没看答案,自己做了遍。每天进步一点点{:5_91:}
def is_prime(n):
for i in range(2, n):
if n % i == 0:
return False
else:
return True
list1 =
l1=[]
for v in list1:
n = round(v / 2)
for j in range(2, n+1):
if is_prime(j):
if is_prime(v-j):
if v not in l1: # 去掉重复的
l1.append(v)
print(l1)
结果:
def isPrime(n):
for i in range(2, int(n**0.5)+1):
if n%i == 0: return False
return n>=2
def isPrimeSum(n):
for x in range(2, n//2+1):
if isPrime(x) and isPrime(n-x): return True
return False
def f(L):
return
L =
print(f(L)) def isPrime(n):
if n <= 1:
return False
i = 2
while i*i <= n:
if n % i == 0:
return False
i += 1
return True
L =
for i in L:
for j in range(i // 2 + 1):
if isPrime(j) and isPrime(i - j):
print('%2d = %d + %d'%(i, j, i-j))
break prime=
list1 =
result = []
for each in list1:
[(result.append(each)) for i in range(2, each//2+1) if (i in prime) and (each - i in prime)]
print(set(result)) list1 =
list2 = []
#判断是否为质数,若是则返回真
def primeConfirm(n) :
flag = 0
for i in range(2, n) :
if n % i == 0 :
flag += 1
if flag < 1 :
return True
else :
return False
#数值分解
def numSplit() :
tempNum = 2
tempPrime = 0
for i in list1 :
tempPrime = i - tempNum
if primeConfirm(tempPrime) :
list2.append(i)
else :
for j in range(2, i - 1) :
if primeConfirm(j) and primeConfirm(i - j) :
list2.append(i)
break
print(list2)
numSplit() 本帖最后由 咕咕鸡鸽鸽 于 2019-3-21 10:40 编辑
from itertools import permutations as per
def is_prime(n):
for i in range(2,int(pow(n,0.5) + 1)):
if not n%i:
return False
return True
def fun135(list1):
prime_list =
list2 = []
#除2外,所有相近的质数之差为偶数
for i in range(3,max(list1),2):
if is_prime(i):
prime_list.append(i)
for each in list1:
for prime in per(prime_list,2):
if sum(prime) == each:
list2.append("%d = %d + %d" % (each,prime,prime))
return list2 def fun95(alist):
a=[]
b=[]
for i in range(2,30):
flg=1
for j in range(2,i):
if i%j==0:
flg=0
break
if flg==1:
a.append(i)
for x in a:
for y in a:
if (x+y) in alist:
b.append(x+y)
return list(set(b))
alist=
print(fun95(alist))
def fun135(nums):
s = set()
for i in range(2, max(nums) + 1):
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
break
else:
s.add(i)
ans = []
for num in nums:
for k in s:
cur = num - k
if cur != k and cur in s:
print("满足条件的:" + str(num), "质数:" + str(cur), "质数:" + str(k))
break
return '检查完毕!'
print(fun135())
页:
1
[2]