输入n输出n到2n之间最小的素数c++
时间: 2024-03-23 21:38:49 浏览: 18
以下是一个简单的 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 3; i * i <= n; i += 2) {
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;
}
```
输入一个整数n,然后从n到2n遍历,每次判断当前数是否为素数,如果是,则输出并结束循环。判断素数的函数isPrime采用了较为简单的质数判断方法,即从3到sqrt(n)枚举奇数i,判断n是否能够整除i。
相关问题
不用数组和函数输入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是素数,输出并结束循环。