如何用C++编写一个函数,该函数接受一个正整数n作为输入,目标是计算并返回第n个最小的质数?同时,函数还需要输出这个质数。
时间: 2024-10-28 08:08:00 浏览: 23
在C++中,你可以通过以下步骤编写一个函数来计算并返回第n个最小的质数:
```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;
}
// 函数来找到第n个最小的质数
std::pair<int, bool> findNthPrime(int n) {
std::vector<int> primes;
int count = 0;
int num = 2; // 质数从2开始
while (count < n) {
if (isPrime(num)) {
primes.push_back(num);
++count;
}
++num;
}
// 返回第n个质数及其是否真的是质数(已检查)
return {primes[n - 1], true};
}
int main() {
int n;
std::cout << "Enter the value of n: ";
std::cin >> n;
auto result = findNthPrime(n);
std::cout << "The " << n << "-th prime number is: " << result.first << std::endl;
if (result.second)
std::cout << "And it is a prime number." << std::endl;
else
std::cout << "It is not a prime number." << std::endl;
return 0;
}
```
在这个程序中,我们首先创建了一个`isPrime`函数来判断一个数字是否是质数。然后在`findNthPrime`函数中,我们使用一个动态数组存储发现的质数,并不断递增`num`直到找到第n个质数。最后在`main`函数中,我们获取用户输入的n,调用`findNthPrime`函数并打印结果。
阅读全文