鱼C论坛

 找回密码
 立即注册
查看: 4546|回复: 17

题目37:找出所有11个可以双向裁剪的质数的和

[复制链接]
发表于 2020-10-5 11:09:47 | 显示全部楼层
  1. from time import time

  2. def prime(n):
  3.     if n<=1:
  4.         return False
  5.     elif n == 2 or n==3:
  6.         return True
  7.     else:
  8.         for i in range(2,int(n**0.5+1)):
  9.             if n%i==0:
  10.                 return False
  11.         else:
  12.             return True
  13.    
  14. list1 = []

  15. def zuo(n):
  16.     a = len(str(n))-1
  17.     while a:
  18.         n = int(str(n)[1:])        
  19.         if prime(n):
  20.             a -= 1
  21.         else:
  22.             return False
  23.     if a==0:
  24.         return True
  25.      
  26. def you(n):
  27.     m = list(str(n))
  28.     a = len(m)-1
  29.     while a:
  30.         m.pop()
  31.         b = int(''.join(m))
  32.         if prime(b):
  33.             a -= 1
  34.         else:
  35.             return False
  36.     if a==0:
  37.         return True

  38. t = time()
  39. for i in range(10,1000000):
  40.     if '0' in str(i):
  41.         continue
  42.     else:
  43.         if prime(i):
  44.             if zuo(i):
  45.                 if you(i):
  46.                     list1.append(i)

  47. print(list1,sum(list1))
  48. print('cos %s' % (time()-t))

  49.    
  50.         
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-9 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表