因为没有注意最后一个数后不能有空格而错误
乙级好爱考这个行末不能有空格的问题啊
然后是素数的问题找因数的时候范围限制在根号内节省时间
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:5 27输出样例:
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103
#include<iostream> #include <vector> #include<math.h> using namespace std; int main() { int m,n; cin >> m >> n; vector<int> P; P.push_back(2); P.push_back(3); for (int i = 5,j; P.size() <= n; i+=2) { for (j = 1; j < P.size(); j++) { if (i%P[j] == 0) break; if (P[j] > sqrt(i)) { j = P.size(); break; } } if (j == P.size()) P.push_back(i); } for (int i = m - 1,j=1; i < n; i++,j++) { cout << P[i]; if (i != n - 1) { if (j % 10 != 0) cout << " "; else cout << endl; } } return 0; }