利用递归求,今天灵感一来写了一段,结果通过了,但是我自己其实不是很理解这段代码哈哈哈 思想是不断分割出因子,找出大的返回,不过怎么能确定返回的因子一定是素数呢,我不理解哈哈
//获取最大素数因子
int get_prime_factor(int a) {
//cout << "执行" << endl;
if (a == 1 || a == 2)return a;
for (int i = 2; i <= sqrt(a); i++) {
if (a % i == 0) {
return max(get_prime_factor(a/i), i);
}
}
return a;
}