在C++中输出1到10内的所有素数
时间: 2024-10-21 17:12:33 浏览: 32
在C++中,我们可以使用循环和条件判断来找出并输出1到10之间的所有素数。素数是指大于1的自然数中,除了1和它本身以外不再有其他因数的整数。下面是一个简单的程序示例:
```cpp
#include <iostream>
using namespace std;
// 判断是否为素数的辅助函数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) { // 只需要检查到sqrt(num),效率更高
if (num % i == 0) // 如果num能被i整除,则不是素数
return false;
}
return true;
}
int main() {
cout << "素数列表(1到10):" << endl;
for (int i = 2; i <= 10; i++) {
if (isPrime(i))
cout << i << " ";
}
cout << endl;
return 0;
}
```
在这个程序里,`isPrime()`函数用于检查一个数是否是素数,`main()`函数则遍历1到10的数字,并调用`isPrime()`来决定是否打印。
相关问题
C++输出1到100内的所有素数
在C++中,我们可以编写一个简单的程序来输出1到100范围内的所有素数。素数是指大于1的自然数,除了1和它本身以外不再有其他因数。下面是一个简单的示例,使用了埃拉托斯特尼筛法(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到100之间的素数
void printPrimes(int n) {
std::vector<bool> primes(n + 1, true); // 创建一个标记数组,初始化为true
for (int p = 2; p * p <= n; p++) {
// 如果primes[p]没被改变过,则p是素数
if (primes[p]) {
// 将p的倍数标记为非素数
for (int i = p * p; i <= n; i += p)
primes[i] = false;
}
}
// 输出素数
for (int p = 2; p <= n; p++)
if (primes[p])
std::cout << p << " ";
}
int main() {
int limit = 100;
std::cout << "Prime numbers from 1 to " << limit << " are:\n";
printPrimes(limit);
return 0;
}
```
当你运行这个程序,它将输出1到100之间所有的素数。
C++输出2到n的所有素数
要输出2到n之间的所有素数,可以使用一个判断素数的函数,然后遍历2到n,对于每个数判断是否为素数,如果是素数则输出。下面是一个C++的实现:
```C++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int n;
cin >> n;
int cnt = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
cout << i << " ";
cnt++;
if (cnt % 10 == 0) cout << endl;
}
}
if (cnt % 10 != 0) cout << endl;
return 0;
}
```
阅读全文