|
悬赏公告
不是研究质数的。
这个题目不需要专门的研究人员
一个简单的程序就可以了
-------------------------
#!/usr/bin/python
all_primes = []
def gen_prime_list(n):
all_primes.append(2)
_prime_list = all_primes
print_tag = False
if n > 10000:
print_tag = True
if n <= 2 :
return _prime_list;
i = 3
while i <= n :
#print "Test I=%d"%(i)
if print_tag and (i % 1000 == 0):
print "Gen prime number , come to :",i
p_tag = True
for p in _prime_list :
#print "%d mod %d" % (n, i)
if i%p == 0 :
p_tag = False
break
if p_tag :
_prime_list.append(i)
i += 1
return _prime_list
def is_prime(m):
if m in all_primes:
return True
return False
def Get_1(max):
res_file = open("res.txt", "w")
res = []
p_list = gen_prime_list(max)
print "Gen prime finished"
#print p_list
#return
p_count = len(p_list)
i=0
while i < p_count - 5:
j=i+1
if i % 100 == 0:
print "Come to %d, total:%d."%(i, p_count)
while j < p_count:
div = p_list[j] - p_list
next_num = p_list[j]
check_tag = True
#print "i=%d, j=%d, div:%d "%(i,j, div)
#Check p_list, +div, +2*div,...
#_ok_count is count of the sequence
res_ok = [p_list, p_list[j]]
#print "Test:", res_ok
while True:
next_num += div
if is_prime(next_num):
#print next_num, " is prime"
res_ok.append(next_num)
else:
break
if len(res_ok) >= 6:
print "Got result:", res_ok
res_file.write(str(res_ok))
res_file.write("\n")
res.append(res_ok)
j += 1
i += 1
return res
def Test1():
res = Get_1(10000)
print res
res_t = open("results.txt", "w");
print "------------- Six primes ---------------"
res_t.write( "------------- Six primes ---------------\n")
for ele in res:
if len(ele) == 6:
print ele
res_t.write(str(ele)+ "\n")
print "------------- Seven primes ---------------"
res_t.write( "------------- Six primes ---------------\n")
for ele in res:
if len(ele) == 7:
print ele
res_t.write(str(ele)+ "\n")
print "------------- Seven primes ---------------"
res_t.write( "------------- Eight primes ---------------\n")
for ele in res:
if len(ele) == 8:
print ele
res_t.write(str(ele)+ "\n")
print "------------- Other primes ---------------"
res_t.write( "------------- Other primes ---------------\n")
for ele in res:
if len(ele) >8 :
print ele
res_t.write(str(ele)+ "\n")
if __name__ == "__main__":
Test1()
|
|