题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805309963354112
测试点4参考:https://blog.csdn.net/xyqqwer/article/details/89042444
这题有几个注意点
- 主程序中不要漏了get_prime
- 最后一个数字之后没有空格
- j < maxn 不能加等号,不然会显示数组越界
- 第10000个素数大约在105000 内
- 建立数组到max就够了
代码
#include<vector>#include<algorithm>#include<iostream>#include<cstdio>using namespace std;const int maxn = 1000000;vector<bool> isprime(maxn, true);vector<int> prime;void get_prime(){for(int i = 2; i <= maxn; i++){if(isprime[i] == true){prime.push_back(i);for(int j = 2 * i; j < maxn; j += i){isprime[j] = false;}}}}int main(){int min, max;int linecount = 0;get_prime();scanf("%d %d",&min, &max);for(int i = min - 1; i < max; i++){cout<<prime[i];if(i == max-1) break;if(linecount!=9){printf(" ");linecount++;}else{printf("\n");linecount = 0;}}}
