用c++求100以内的素数
时间: 2023-09-10 14:14:25 浏览: 85
好的,下面是在 C 语言中求 100 以内的素数的代码示例:
```
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n <= 1) return false;
for (int i = 2; i < n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
printf("100 以内的素数有:\n");
for (int i = 2; i <= 100; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
输出:
```
100 以内的素数有:
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
```
相关问题
c++求100以内的素数
以下是求100以内的素数的 C 代码:
#include <stdio.h>
int main() {
int i, j, is_prime;
for (i = 2; i <= 100; i++) {
is_prime = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
printf("%d ", i);
}
}
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
C++求100以内的质数
C++中求100以内质数的一种常见方法是使用埃拉托斯特尼筛法(Sieve of Eratosthenes)。这是一种简单而高效的查找素数的算法,步骤大致如下:
1. 创建一个布尔数组isPrime[101],所有元素初始值设为true,表示从2到100的所有数字都是潜在的质数。
2. 遍历数组,从第一个素数2开始,将它的倍数标记为非质数,即isPrime[i * j] = false (i > sqrt(100) 因为超过这个范围的数不会影响100以内的结果)。
3. 继续找到下一个未被标记为非质数的数,它就是当前范围内的下一个质数,然后重复步骤2,直到遍历完整个数组。
以下是简单的C++代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void sieveOfEratosthenes(int n) {
vector<bool> isPrime(n + 1, true); // 假设所有数都是质数
isPrime[0] = isPrime[1] = false; // 0和1不是质数
for (int i = 2; i * i <= n; ++i) { // 只需要检查到√n
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
// 输出所有的质数
for (int i = 2; i <= n; ++i)
if (isPrime[i])
cout << i << " ";
}
int main() {
int limit = 100;
sieveOfEratosthenes(limit);
return 0;
}
阅读全文