求100以内的素数,素数(质数)是指大于1的自然数中,只能被1和它本身整除的数,提示可以使用求平方根函数sqrt(),每行输出10个数据 。c++
时间: 2024-10-16 09:15:48 浏览: 26
1亿以内的质数(共5761455个数).txt_1亿以内素数的个数
5星 · 资源好评率100%
在C++中,你可以使用循环和条件判断来找出100以内的素数。这里是一个简单的程序示例,采用了埃拉托斯特尼筛法(Sieve of Eratosthenes),该算法效率较高:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
void printPrimes(int limit) {
bool prime[limit + 1]; // 初始化所有数字为非素数
memset(prime, true, sizeof(prime)); // 将0和1标记为非素数
for (int p = 2; p * p <= limit; p++) { // 遍历到 sqrt(limit)
if (prime[p]) { // 如果p是素数
for (int i = p * p; i <= limit; i += p) {
prime[i] = false; // 将i的倍数标记为非素数
}
}
}
for (int p = 2; p <= limit; p++) {
if (prime[p]) { // 只打印真正的素数
cout << p << " ";
if ((p / 10) * 10 == p) { // 每打印10个数换行
cout << endl;
} else if (p % 10 == 0) { // 当前数不是10的倍数,但在最后一位,加空格
cout << ' ';
}
}
}
}
int main() {
int limit = 100;
printPrimes(limit);
return 0;
}
```
这个程序会输出100以内的所有素数,每行打印10个,如:
```
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
```
阅读全文