c++,用筛选法求100以内的素数。
时间: 2024-06-17 17:05:11 浏览: 138
c++,用筛选法求100以内的素数[^2]。
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int arr[101] = {0};
for(int i = 2; i <= sqrt(100); i++) // 从2开始到根号100
{
if(arr[i] == 0) // 如果该数未被筛选
{
for(int j = i * i; j <= 100; j += i) // 则将其倍数筛选
{
arr[j] = 1;
}
}
}
for(int i = 2; i <= 100; i++) // 打印素数
{
if(arr[i] == 0)
cout << i << "是素数" << endl;
}
return 0;
}
```
相关问题
c++筛选法求100以内的素数的程序代码
以下是使用筛选法求100以内素数的C++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<bool> is_prime(101, true); // 初始化所有数字为素数
is_prime[0] = false; // 1 不是素数
for (int i = 2; i * i <= 100; ++i) {
if (is_prime[i]) { // 如果i是素数
for (int j = i * i; j <= 100; j += i) {
is_prime[j] = false; // 将i的倍数标记为合数
}
}
}
// 输出素数
cout << "100以内的素数有:";
for (int i = 2; i <= 100; ++i) {
if (is_prime[i]) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
该程序中,使用 vector<bool> 存储每个数字是否为素数。初始化时,所有数字都被视为素数,然后从 2 开始,将其倍数标记为合数。最后输出所有素数即可。
筛选法求100以内的素数c++
以下是使用筛选法求100以内素数的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
int arr[101] = {0}; // 容量为101的数组并将其全部赋值为0
for (int i = 2; i < 101; i++) {
if (arr[i] == 0) { // 如果当前数是素数
for (int j = i * 2; j < 101; j += i) {
arr[j] = 1; // 将其倍数全部标记为非素数
}
}
}
for (int i = 2; i < 101; i++) {
if (arr[i] == 0) { // 输出所有素数
cout << i << "是素数" << endl;
}
}
return 0;
}
```
阅读全文