用c++求2到100之间的素数
时间: 2024-10-29 09:18:53 浏览: 24
可以使用埃氏筛法(Sieve of Eratosthenes)来求解2到100之间的素数。具体步骤如下:
1. 创建一个长度为101的布尔数组,用来标记每个数字是否为素数,初始值都为true。
2. 从2开始,将其所有的倍数(除了本身)标记为false。
3. 找到下一个未被标记为false的数字,重复步骤2直到100。
4. 输出所有未被标记为false的数字,即为2到100之间的素数。
以下是C++代码实现:
```
#include <iostream>
#include <cstring>
using namespace std;
int main() {
bool isPrime[101];
memset(isPrime, true, sizeof(isPrime)); // 初始化为true
for (int i = 2; i <= 100; i++) {
if (isPrime[i]) {
for (int j = i * 2; j <= 100; j += i) {
isPrime[j] = false;
}
}
}
for (int i = 2; i <= 100; i++) {
if (isPrime[i]) {
cout << i << " ";
}
}
return 0;
}
--相关问题--:
相关问题
用c++求1-100之间素数的代码
### 回答1:
下面是求1-100之间素数的C语言代码:#include <stdio.h>
int main()
{
int i, j, n;
n = 100;
for(i=2; i<=n; i++)
{
for(j=2; j<=i-1; j++)
{
if(i%j == 0)
break;
}
if(i == j)
printf("%d ", i);
}
return 0;
}
### 回答2:
下面是用C语言编写的找出1-100之间所有素数的代码:
```c
#include <stdio.h>
// 函数判断一个数是否为素数
int isPrime(int num)
{
if (num < 2) // 0和1不是素数
return 0;
for (int i = 2; i <= num / 2; ++i) // 判断num是否可以被2到num/2之间的数整除
{
if (num % i == 0) // 如果可以整除,则num不是素数
return 0;
}
return 1; // 能整除的数都不存在,则num是素数
}
int main()
{
printf("1-100之间的素数有:\n");
for (int i = 1; i <= 100; ++i)
{
if (isPrime(i)) // 调用isPrime函数判断i是否为素数
printf("%d ", i);
}
return 0;
}
```
程序中定义了一个`isPrime`函数来判断一个数是否为素数。其中,`isPrime`函数的参数`num`表示待判断的数,函数返回值为1时表示`num`是素数,返回值为0时表示`num`不是素数。
在`main`函数中,通过循环从1到100遍历每个数,对每个数调用`isPrime`函数判断是否为素数,是素数则输出。最终输出1-100之间的所有素数。
### 回答3:
以下是使用C语言编写的求解1-100之间素数的代码:
```c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0; // 如果数字小于等于1,直接返回非素数
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0; // 如果有除1和自身以外的约数,则返回非素数
}
}
return 1; // 如果没有其他约数,则返回素数
}
int main() {
printf("1-100之间的素数有: ");
for (int i = 1; i <= 100; i++) {
if (isPrime(i)) {
printf("%d ", i); // 如果是素数,则输出
}
}
printf("\n");
return 0;
}
```
上述代码中,我们定义了一个函数`isPrime`来判断一个数是否为素数。首先判断数字是否小于等于1,因为任何小于等于1的数字都不是素数。然后使用循环从2开始,到该数字的一半为止,逐个判断是否有其他约数。如果有,则返回0表示非素数;如果没有,则返回1表示素数。最后在`main`函数中,我们遍历1-100之间的数字,使用`isPrime`函数来判断是否为素数,并输出结果。
c++求100到200之间的素数
以下是C++求100到200之间的素数的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int i = 0, sum = 0;
for (i = 100; i <= 200; i++) {
int b = 0;
for (b = 2; b <= i; b++) {
if (i % b == 0)
break;
}
if (i == b) {
cout << "素数是" << i << endl;
sum += 1;
}
}
cout << "素数有" << sum << "个" << endl;
return 0;
}
```
输出结果为:
```
素数是101
素数是103
素数是107
素数是109
素数是113
素数是127
素数是131
素数是137
素数是139
素数是149
素数是151
素数是157
素数是163
素数是167
素数是173
素数是179
素数是181
素数是191
素数是193
素数是197
素数是199
素数有21个
```
阅读全文