[蓝桥杯][算法提高]素数求和
问题描述 Description 输入一个自然数n,求小于等于n的素数之和 Input 一个自然数n (2 ≤ n ≤ 2,000,000) Output 输出小于等于n的素数之和 Sample Input 2 Sample Output 2 问题思路 简单版[超时] 首先先判断这个数是不是质数,如果是质数就加上 中等版[通过] 题目中需要判断的范围最大是:2000000,所以,我们可以先使用暴力法,算出前 n \sqrt{n} n 前个质数来,所有在判断质数的时候,我们进行模运算的范围是: 2- n \sqrt{n} n 之间的质数就可以了。 代码实现 # include <iostream> # include <cmath> using namespace std ; //sqrt(n)以内的素数 int prime100 [ ] = { 2 , 3 , 4 , 5 , 6 , 7 , 8 , 10 , 11 , 13 , 14 , 16 , 17 , 19 , 20 , 22 , 23 , 26 , 28 , 29 , 31 , 32 , 34 , 37 , 38 , 41 , 43 , 44 , 46 , 47 , 52 , 53 , 58 , 59 , 61 , 62 , 64 , 67 , 68 , 71 , 73 , 74 , 76 , 79 , 82 ,