#include <iostream> using namespace std ; int main() { //求100以内的质数 int num = 0; for(int i = 0; i <= 100; i++) { for(int j = 0;j <= 9 ; j++) { if(i % 1 == 0 && !i % j == 0 ) { cout << "质数:" << i << " "; num++; } } } cout << num << endl; return 0; }
时间: 2024-01-19 10:02:41 浏览: 119
这段代码存在一些问题,无法正确输出100以内的质数。其中,第二个循环中的 j 应该从 2 开始循环,而不是从 0 开始。同时,判断 i 是否为质数的语句也有问题,应该改为判断 i 能否被 j 整除。
以下是修改后的代码:
```c++
#include <iostream>
using namespace std;
int main() {
// 求100以内的质数
int num = 0;
for (int i = 2; i <= 100; i++) {
bool is_prime = true; // 标记i是否为质数
for (int j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
cout << "质数:" << i << " ";
num++;
}
}
cout << endl << "质数个数:" << num << endl;
return 0;
}
```
运行结果:
```
质数:2 质数:3 质数:5 质数:7 质数:11 质数:13 质数:17 质数:19 质数:23 质数:29 质数:31 质数:37 质数:41 质数:43 质数:47 质数:53 质数:59 质数:61 质数:67 质数:71 质数:73 质数:79 质数:83 质数:89 质数:97
质数个数:25
```
阅读全文