统计1-100之间的素数个数。 直接输出素数个数。 用c++语言
时间: 2024-05-24 20:11:54 浏览: 75
#include <stdio.h>
int main() {
int count = 0; // 记录素数个数
for (int i = 2; i <= 100; i++) {
int is_prime = 1; // 标记是否为素数
for (int j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
count++;
}
}
printf("1-100之间的素数个数为:%d\n", count);
return 0;
}
相关问题
c++ 统计1-100之间的素数个数
在 C++ 中,统计 1 到 100 之间的素数个数可以采用一种常见的算法,即埃拉托斯特尼筛法(Sieve of Eratosthenes)。这是一种用于找出一定范围内所有质数的有效方法。以下是简单的步骤:
1. 创建一个布尔数组 `isPrime[101]`,初始化所有元素为 `true`,表示从 2 到 100 的数字都是潜在的素数。
2. 遍历数组,从第一个质数 2 开始:
- 如果当前数 `i` 是质数(`isPrime[i]` 为 `true`),将它的所有倍数标记为非素数(将 `isPrime[j * i]` 设为 `false`,其中 `j` 从 2 到 `i / j`)。
3. 当遍历结束后,`isPrime` 数组中为 `true` 的元素就是素数,它们对应的索引加一就得到了素数的数量。
下面是对应的 C++ 代码示例:
```cpp
#include <iostream>
using namespace std;
void countPrimes(int n) {
bool isPrime[n + 1];
memset(isPrime, true, sizeof(isPrime));
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;
}
}
int primeCount = 0;
for (int i = 2; i <= n; ++i)
if (isPrime[i])
primeCount++;
cout << "1到" << n << "之间有 " << primeCount << " 个素数。\n";
}
int main() {
countPrimes(100);
return 0;
}
```
运行此程序后,它会输出 1 到 100 之间素数的个数。
c++语言输出1-100的素数
在C++中,你可以使用循环和条件判断来找出并打印1到100之间的素数。素数是指只有两个正因数(1和它本身)的大于1的自然数。下面是一个简单的示例程序:
```cpp
#include <iostream>
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
void printPrimes(int start, int end) {
for (int i = start; i <= end; i++) {
if (isPrime(i))
std::cout << i << " ";
}
std::cout << "\n";
}
int main() {
printPrimes(1, 100);
return 0;
}
```
这个程序首先定义了一个辅助函数`isPrime()`用于检查一个数是否为素数,然后在`printPrimes()`函数中从1遍历到100,对每个数字调用`isPrime()`,如果是素数则打印出来。
阅读全文