一个大于1的正整数一定有质因数,其中当然有最大的,例如13195的所有质因数为5,7,13,29于是13195的最大质因数是29。输入正整数n,求n的最大的质因数c++
时间: 2024-09-16 09:03:49 浏览: 57
python简单实例训练(21~30)
在C++中,我们可以编写一个函数来找到一个正整数n的最大质因数。这里可以采用一种名为"分解质因数"的方法,即不断将n除以它的最小的质因数,直到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;
}
// 获取最大质因数
int largestPrimeFactor(int n) {
int max_factor = -1; // 初始化为负一,表示尚未找到
for (int i = 2; i * i <= n; ++i) { // 从2开始到根号n
while (n % i == 0 && isPrime(i)) { // 如果i能整除n且i本身是质数
max_factor = i; // 更新最大质因数
n /= i; // 除以i并更新n
}
}
// 检查n是否为质数大于max_factor的情况
if (n > 1 && isPrime(n))
max_factor = n;
return max_factor;
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
int c = largestPrimeFactor(n);
std::cout << "该数的最大质因数是: " << c << std::endl;
阅读全文