不二如是 发表于 2017-6-12 05:00:00

算法39 ◉‿◉ 计算两百万以下所有质数的和

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁



程序分析:
10 以下的质数的和是 2 + 3 + 5 + 7 = 17。

找出两百万以下所有质数的和。       

源代码:
**** Hidden Message *****




○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

冬雪雪冬 发表于 2017-6-13 10:02:50

用python算还是比较慢。
list1 =

for num in range(5, 2000000, 2):
    for i in list1:
      if num % i == 0:
            break
      if num < i * i:
            list1.append(num)
            break

print(sum(list1))

sunhack 发表于 2018-6-5 14:29:51

什么是质数?

hxgoto 发表于 2018-6-12 08:53:55

dsa159245 发表于 2018-6-17 05:31:04

window.onload = function(){
                                function is_zz(num){
                                        for(var i = 2; i <= Math.sqrt(num);i++){
                                                if(num % i == 0){
                                                        return false;
                                                }
                                        }
                                        return true;
                                }
                               
                               
                                var num = 0;
                               
                                for(var i = 1;i < 2000000;i++){
                                        if(is_zz(i)){
                                                num += i;
                                        }
                                }
                               
                                document.write(num);
                               
                        };

QIUCHAO 发表于 2020-4-9 14:26:14

666

霓虹巨人 发表于 2020-4-18 23:33:16



def is_prime(orign):
      i=2
      while i<=(orign//2):
            if orign%i == 0:
                  return False
            else:
                  i+=1
      return True

def get_prime():
      orign = 2
      while True:
            if is_prime(orign):
                  yield orign
            orign += 1

def sum_prime(require):
      sum_number = 0
      for each in get_prime():
            if each <= require:
                  sum_number+=each
            else:
                  print(sum_number)
                  break
                  

能改进算法吗?我的Python算了很久

霓虹巨人 发表于 2020-4-18 23:47:04

霓虹巨人 发表于 2020-4-18 23:33
能改进算法吗?我的Python算了很久

import math

def is_prime(orign):
      i=2
      while i<=math.sqrt(orign):
            if orign%i == 0:
                  return False
            else:
                  i+=1
      return True

def get_prime():
      orign = 2
      while True:
            if is_prime(orign):
                  yield orign
            orign += 1

def sum_prime(require):
      sum_number = 0
      for each in get_prime():
            if each <= require:
                  sum_number+=each
            else:
                  print(sum_number)
                  break
                  

我找到了

jack6666 发表于 2022-10-23 21:14:32

1
页: [1]
查看完整版本: 算法39 ◉‿◉ 计算两百万以下所有质数的和