找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3056|回复: 0

【Python】一道有趣的题

[复制链接]
发表于 2014-2-11 10:56:52 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
本帖最后由 Jack 于 2014-2-13 16:33 编辑

第一对各自具有两个不同质因数,并且是相邻整数的数是:
14 = 2 × 7
15 = 3 × 5

首次出现的各自具有三个不同质因数的三个相邻整数是:
644 = 2² × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19
你能否找出首批各自具有四个不同质因数的四个相邻整数呢?


  1. limit = 1000000
  2. pt = [True] * limit
  3. ps = []
  4. pt[0] = pt[1] = False
  5. for (i, isprime) in enumerate(pt):
  6.         if isprime:
  7.                 ps.append(i)
  8.                 for n in range(i*i, limit, i):
  9.                         pt[n] = False
  10. def factor(n):
  11.         cnt = 0
  12.         i = 0
  13.         while True:
  14.                 if ps*ps > n:
  15.                         break
  16.                 if n%ps == 0:
  17.                         if cnt == 3:
  18.                                 return False
  19.                         while n%ps == 0:
  20.                                 n/=ps
  21.                         cnt+=1
  22.                 i+=1
  23.         return cnt==3
  24. c = 0
  25. i = 2
  26. while True:
  27.         if pt == False and factor(i):
  28.                 c+=1
  29.                 if c==4:
  30.                         print(i-3,i-2,i-1,i)
  31.                         break
  32.         else:
  33.                 c=0
  34.         i+=1
复制代码


一秒内得出答案!



回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 17:54 , Processed in 0.034644 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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