Jackeriss 发表于 2014-2-11 10:56:52

【Python】一道有趣的题

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

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

limit = 1000000
pt = * limit
ps = []
pt = pt = False
for (i, isprime) in enumerate(pt):
      if isprime:
                ps.append(i)
                for n in range(i*i, limit, i):
                        pt = False
def factor(n):
      cnt = 0
      i = 0
      while True:
                if ps*ps > n:
                        break
                if n%ps == 0:
                        if cnt == 3:
                              return False
                        while n%ps == 0:
                              n/=ps
                        cnt+=1
                i+=1
      return cnt==3
c = 0
i = 2
while True:
      if pt == False and factor(i):
                c+=1
                if c==4:
                        print(i-3,i-2,i-1,i)
                        break
      else:
                c=0
      i+=1

一秒内得出答案!



页: [1]
查看完整版本: 【Python】一道有趣的题