01 #include <iostream> 02 03 using namespace std; 04 05 const int maxn = 10000000; 06 int n, size; 07 int prime[maxn + 5]; 08 bool vis[maxn + 5]; 09 10 int main() { 11 cin >> n; 12 size = 0; 13 for (int i = 2; i <= n; ++i) { 14 if (!vis[i]) { 15 size = size + 1; 16 prime[size] = i; 17 } 18 for (int j = 1; i * prime[j] <= n; ++j) { 19 vis[i * prime[j]] = 1; 20 if (i % prime[j] == 0) 21 break; 22 } 23 } 24 int sum = 0; 25 for (int i = 1; i <= size; ++i) 26 sum = sum + prime[i]; 27 cout << sum << endl; 28 return 0; 29 }
1. n必须小于等于 10000004,否则程序可能会运行时错误。( )
2. 输出可能为 1 。( )
3. 若输入为 1000000 ,那么程序会输出小于等于 1000000 的质数之和。
4. 若输入为 1000000 ,那么程序会输出小于等于 1000000 的质数之和。
5. 若输入 n 为 40 ,那么输出为 ( )。
6. 若输出的答案在 $50000 \sim 5000000$ 之间,那么 n 的量级约为 ( )