c++求100以内的素数,素数(质数)是指大于1的自然数中,只能被1和它本身整除的数,提示可以使用求平方根函数sqrt(),每行输出10个数据
时间: 2024-10-16 18:15:09 浏览: 68
在C++中,你可以通过以下步骤编写一个程序来找出100以内的素数,并利用`sqrt()`函数优化计算效率:
```cpp
#include <iostream>
#include <cmath>
bool is_prime(int num) {
if (num <= 1) return false;
if (num == 2 || num == 3) return true; // 特殊处理2和3这两个质数
if (num % 2 == 0 || num % 3 == 0) return false;
int sqrt_num = std::sqrt(num);
for (int i = 5; i <= sqrt_num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0)
return false;
}
return true;
}
int main() {
const int LIMIT = 100;
for (int i = 2; i <= LIMIT; i++) {
if (is_prime(i)) {
std::cout << i << " ";
if ((i + 9) % 10 == 0) { // 每10个数字换一行
std::cout << "\n";
}
}
}
return 0;
}
```
这个程序首先检查是否小于等于1的数不是质数,然后处理特殊值2和3。接着使用一个循环从5开始,每次加6(因为所有质数都可以表示为6k±1的形式),只检查num能否被6k和6k+2整除。如果是素数,则输出并每10个数换一行。
阅读全文
相关推荐


















