achencan 发表于 2018-1-11 18:06:01

# -*- coding:UTF-8 -*-
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)

cupbbboom 发表于 2018-1-13 10:20:41

第一次做{: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:}

graceasyi 发表于 2018-1-15 14:21:36

没看答案,自己做了遍。每天进步一点点{: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)

结果:

dunhee 发表于 2018-2-8 16:32:48

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

kwty 发表于 2018-2-8 18:52:46

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

Elastcio 发表于 2018-2-9 10:39:07

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

foxiangzun 发表于 2019-1-4 15:24:15

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:38:21

本帖最后由 咕咕鸡鸽鸽 于 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

小贤啊哦 发表于 2020-5-12 20:27:51

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

kinkon 发表于 2022-3-9 14:25:23

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]
查看完整版本: Python:每日一题 135