输入n输出n到2n之间最小的素数c++
时间: 2024-03-22 15:42:14 浏览: 22
以下是一个可以输出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之间没有素数。
注意,此代码的效率可能不高,如果需要处理更大的数字,还需要进行优化。
相关问题
不用数组和函数输入n输出n到2n之间最小的素数c++
以下是一个不使用数组和函数的 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = n; i <= 2 * n; ++i) {
bool isPrime = true;
if (i <= 1) {
isPrime = false;
} else {
for (int j = 2; j * j <= i; ++j) {
if (i % j == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
cout << i << endl;
break;
}
}
return 0;
}
```
与前面的代码实现相比,这里没有使用函数和数组,而是直接在主函数中实现了判断素数的逻辑。具体来说,对于每个待判断的数i,首先判断其是否小于等于1,如果是,则不是素数;否则从2到sqrt(i)遍历所有可能的因子j,如果发现i能够整除j,则i不是素数。如果经过遍历后,i没有被判定为非素数,则i是素数,输出并结束循环。
不用数组函数和bool输入n输出n到2n之间最小的素数c++
以下是一个不使用数组、函数和bool的 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = n; i <= 2 * n; ++i) {
int j;
for (j = 2; j * j <= i; ++j) {
if (i % j == 0) {
break;
}
}
if (j * j > i && i > 1) {
cout << i << endl;
break;
}
}
return 0;
}
```
这个实现的思路与前面的实现类似,但是在判断素数的时候没有使用bool类型的变量,而是通过发现一个i的因子j,使得j * j <= i,就可以判定i不是素数。如果循环结束后,j * j > i,且i大于1,则i是素数,输出并结束循环。