利用Python求質數的和


   問題源某群一討論:10億以內的數與98754互為質數的正整數之和

 

   思路:

1. 先求出98754的約數,並將其放入列表中;

2. 從1至10億的自然數,遍歷98754公約數列表求余。如果遍歷完約數列表且余數都不為0,則認為與98754互為質數,並求和;


   Python實現代碼: 

 1  def Number():
 2     
 3      """ 10億以內的數與98754互為質數的正整數之和 """
 4     
 5     num1 = 1000000000
 6  #     num1 = 1000
 7      num2 = 98754
 8     num2_accept = []
 9        
10      for i  in range(2,num2):        # 獲取98754約數,並放入一列表中
11           if (num2 % i == 0)  and i > 0:
12             num2_accept.append(i)
13      print num2_accept
14     
15     SUM_total = 0
16     x = 1
17     nums = []
18     lengs = len(num2_accept) - 1    # 獲取98754約數列表長度,並減一
19       while (x <= num1):              # 1至10億內自然數與98754的約數求余,求得到互為質數的和
20           for z,y  in enumerate(num2_accept):
21              if x  is y:
22                  break
23             
24              if x < y: 
25                  if y % x != 0:         # 求余判斷
26                       if  z == lengs:    # 判斷是否已經遍歷98754約數列表求余
27                           # nums.append(x)
28                          SUM_total += x
29                  else:
30                      break
31              else:
32                  if  x % y != 0:        # 求余判斷
33                       if  z == lengs:    # 判斷是否已經遍歷98754約數列表求余
34                           # nums.append(x)
35                          SUM_total += x
36                  else:
37                      break           
38         x += 1
39      print SUM_total    




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM