为什么不能输出
#include <iostream>using namespace std;
int main() {
int i, j, k, m;
cin >> m;
for (i = 2; i <= m; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
if (j == i) {
co1ut << i << " " << endl;
}
}
}
cout << endl;
return 0;
}
您的代码片段中缺少了输出语句,因此无法输出结果。为了输出结果,您需要在循环结束后添加一个输出语句。下面是您的代码片段添加了输出语句的完整代码:
#include <iostream>
using namespace std;
int main() {
int i, j, k, m;
cin >> m;
for (i = 2; i <= m / 2; i++) {
k = 1;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
k = 0;
break;
}
}
if (k)
cout << i << endl;
}
return 0;
}
现在,当您运行这段代码并输入一个数字时,它将输出从2到该数字之间的所有质数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2024-3-31 20:58 编辑
判断素数的位置不应该在内层循环内,应该在内层循环以外,外层循环以内。
#include <iostream>
using namespace std;
int main()
{
int i, j, k, m;
cin >> m;
for (i = 2 ; i <= m ; i ++) {
for (j = 2 ; j < i ; j ++) {
if (i % j == 0) {
break;
}
} /* 从后面匀一个花括号到这个位置,让内层循环结束 */
if (j == i) { /* 素数判断必须在内层循环以外 */
cout << i << " " << endl ;
}
} /* 这里必须只剩一个花括号 */
cout << endl;
return 0;
} 《co1ut》
页:
[1]