第1个回答 2023-06-13
以下是使用C++语言编写的程序,实现输出0~n之间的素数:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "请输入一个正整数n:";
cin >> n;
for (int i = 2; i <= n; i++) {
bool is_prime = true; // 标记i是否为素数
// 判断i是否为素数
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
is_prime = false;
break;
}
}
// 如果i是素数,则输出它
if (is_prime) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
运行结果:
```
请输入一个正整数n:20
2 3 5 7 11 13 17 19
```
说明:程序首先要求用户输入一个正整数n,然后使用两重循环分别枚举0~n之间的每个数字i和2~√i之间的每个数字j,判断i是否能被j整除。如果存在某个j使得i能够被它整除,那么i就不是素数;否则i就是素数,将其输出即可。需要注意的是,在第二重循环中,我们只需要枚举到√i就可以了,因为如果在2~√i之间都不存在i的因子,那么超过√i的部分也一定不存在i的因子。