给出一个整数,求出其最大质因数。
- 思路1:最蠢的方法是对所有小于该数的整数,判断是否为给出数的因数且为质数(最蠢的方法判断),然后输出最大的。这种方法的复杂度很高。
- 思路2:可以使用该数的因数对该数进行分解,再继续对分解后的数求最大质因数,这样我们的计算量将极大缩小。
int GetMaxPrime(int n) {
int i = 2;
int res = 1;
while (n > 2) {
if (n%i == 0) {
n /= i;
res = i;
}
else
i++;
}
return res;
}