C++100以内质数
时间: 2024-09-26 21:05:25 浏览: 40
C++语言中查找小于100内的所有质数可以使用循环和条件判断来实现。质数是只有两个正因子(1和它本身)的自然数,因此我们可以从2开始逐个检查每个数字,如果该数字能被2到其平方根之间的任意数整除,则它不是质数。
以下是一个简单的C++程序片段来找出小于100的所有质数:
```cpp
#include <iostream>
#include <cmath>
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;
}
int main() {
std::cout << "小于100的质数有:";
for (int i = 2; i < 100; ++i) {
if (isPrime(i))
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,`isPrime()`函数用于判断一个数是否为质数,`main()`函数则遍历并打印出符合条件的数字。
相关问题
C++100以内所有素数
以下是 C++ 代码实现,可以输出 100 以内的所有素数:
```cpp
#include <iostream>
using namespace std;
int main() {
bool is_prime[101]; // 0~100,共101个数
memset(is_prime, true, sizeof(is_prime)); // 初始化为 true
is_prime[0] = is_prime[1] = false; // 0和1不是素数
for (int i = 2; i * i <= 100; i++) {
if (is_prime[i]) {
for (int j = i * i; j <= 100; j += i) {
is_prime[j] = false; // 将i的倍数标记为非素数
}
}
}
for (int i = 2; i <= 100; i++) {
if (is_prime[i]) {
cout << 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++ n以内质数
好的,以下是使用埃氏筛法实现的C++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<int> find_primes(int n) {
vector<bool> isPrime(n+1, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i <= n; ++i) {
if (isPrime[i]) {
for (int j = i*i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
vector<int> primes;
for (int i = 2; i <= n; ++i) {
if (isPrime[i]) primes.push_back(i);
}
return primes;
}
int main() {
int n;
cin >> n;
vector<int> primes = find_primes(n);
for (int prime : primes) {
cout << prime << " ";
}
cout << endl;
return 0;
}
```
输入一个整数n,输出小于等于n的所有质数。该算法的时间复杂度为O(nloglogn),空间复杂度为O(n)。可以通过使用bitset来进一步减小空间复杂度。
阅读全文