|
|

楼主 |
发表于 2014-8-22 06:39
|
显示全部楼层
Python 程序:
- from math import *
- def maxPrimeFactor(n):
-    P = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,\
-    73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,\
-    163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,\
-    251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,\
-    349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,\
-    443,449,457,461,463,467,479,487,491,499,503,509,521,523,541]
-    p = 1
-    i = 0
-    d = P[0]
-    s = int(sqrt(n))
-    while n > 1:
-        if n % d == 0:
-            p = d
-            while n % d == 0:
-                n /= d
-            s = int(sqrt(n))
-        i = i + 1
-        if i < 100: d = P[i]
-        else: d = d + 2
-        if d > s:
-            if n > 1: p = n
-            break
-    return p
- def pPlusList(a,b,c=2000):
-    L = [a,b]
-    while True:
-        d = maxPrimeFactor(a + b + c)
-        e = maxPrimeFactor(b + c + d)
-        m = len(L)
-        i = 0
-        while i < m:
-            if L[i] == d:
-            if i+1 < m and L[i+1] == e:
-                L.append(d)
-                L.append(e)
-                return L,i
-            i = i + 1
-        L.append(d)
-        L.append(e)
-        a = d
-        b = e
复制代码 |
|