已知正整数n 是两个不同的质数的乘积,试求出较大的那个质数。,用C++写出来
时间: 2024-09-21 20:01:45 浏览: 110
在C++中,你可以通过遍历从n开始到平方根的所有数,检查每个数是否能整除n,并将结果存储在一个变量中作为较大质数的候选。如果找到了这样的因子,再确认另一个因子就是n除以这个候选因子。以下是简单的实现:
```cpp
#include <iostream>
#include <cmath>
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;
}
int findLargestPrimeFactor(int n) {
int largest_prime = -1;
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0 && isPrime(i)) {
largest_prime = i;
}
}
// 如果largest_prime还没找到,那么n本身就是最后一个可能的质因数
if (largest_prime == -1 || n % largest_prime != 0)
largest_prime = n;
return largest_prime;
}
int main() {
int n;
std::cout << "请输入一个正整数n: ";
std::cin >> n;
int result = findLargestPrimeFactor(n);
std::cout << "较大的质数是: " << result << std::endl;
return 0;
}
```
在这个程序中,`isPrime`函数用于判断一个数是否为质数,`findLargestPrimeFactor`函数则是寻找n的大于1的质因数。
阅读全文