输出0到n之间的所有质数c++代码
时间: 2023-09-01 19:08:36 浏览: 51
以下是C++代码实现:
```
#include <iostream>
using namespace std;
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;
}
void printPrimes(int n) {
for(int i=0; i<=n; i++) {
if(isPrime(i)) {
cout << i << " ";
}
}
}
int main() {
int n;
cout << "Enter n: ";
cin >> n;
cout << "Prime numbers between 0 and " << n << " are: ";
printPrimes(n);
return 0;
}
```
该程序首先定义了一个 `isPrime()` 函数,用于判断一个数是否为质数。然后定义了一个 `printPrimes()` 函数,用于打印从0到n之间的所有质数。最后在 `main()` 函数中调用这两个函数,完成输出。
相关问题
输入n输出n到2n之间最小的素数c++
以下是一个可以输出n到2n之间最小的素数的C++代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n){
if(n < 2) return false;
for(int i = 2; i <= sqrt(n); i++){
if(n % i == 0) return false;
}
return true;
}
int main(){
int n;
cin >> n;
for(int i = n; i <= 2 * n; i++){
if(isPrime(i)){
cout << i << endl;
break;
}
}
return 0;
}
```
首先,我们定义了一个函数isPrime来判断一个数是否是素数。接下来,我们从n开始循环到2n,对于每个数,如果它是素数,则输出它并结束循环。如果在循环结束时还没有找到素数,则说明n到2n之间没有素数。
注意,此代码的效率可能不高,如果需要处理更大的数字,还需要进行优化。
c++输出1到n之间素数个数
以下是一个简单的 C++ 代码,可以输出 1 到 n 之间素数的个数:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
int sqrtn = sqrt(n);
for (int i = 2; i <= sqrtn; i++) {
if (n % i == 0) return false;
}
return true;
}
int countPrimes(int n) {
int count = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) count++;
}
return count;
}
int main() {
int n;
cout << "输入n的值:";
cin >> n;
cout << "1到" << n << "之间素数的个数为:" << countPrimes(n) << endl;
return 0;
}
```
该程序中的 `isPrime` 函数用于判断一个数是否为素数。对于一个大于 1 的自然数 n,如果其不是素数,则必定存在一个小于等于 sqrt(n) 的质因子,因此只需对 2 到 sqrt(n) 之间的数进行遍历即可判断 n 是否为素数。
在 `countPrimes` 函数中,我们遍历 2 到 n 之间的所有数,统计素数的个数。
最后在 `main` 函数中,我们通过用户输入 n 的值,输出 1 到 n 之间素数的个数。