利用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