找出一百以内的质数c++
时间: 2024-11-04 19:15:18 浏览: 15
找出100以内所有质数可以使用C++编写一个简单的算法。下面是一个基本的示例,使用了埃拉托斯特尼筛法(Sieve of Eratosthenes):
```cpp
#include <iostream>
#include <vector>
// 检查是否为质数函数
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;
}
// 寻找1到n范围内的所有质数
std::vector<int> findPrimes(int n) {
std::vector<bool> primes(n + 1, true); // 初始化所有数字为质数
primes[0] = primes[1] = false;
for (int i = 2; i * i <= n; i++) {
if (primes[i]) { // 如果i是质数
for (int j = i * i; j <= n; j += i) { // 将i的所有倍数标记为非质数
primes[j] = false;
}
}
}
// 收集所有质数
std::vector<int> primeNumbers;
for (int i = 2; i <= n; i++) {
if (primes[i])
primeNumbers.push_back(i);
}
return primeNumbers;
}
int main() {
int limit = 100;
std::vector<int> primes = findPrimes(limit);
for (const auto &prime : primes) {
std::cout << prime << " ";
}
std::cout << "\n";
阅读全文