最大质因数
问题:
13195的所有质因数为5、7、13和29。600851475143最大的质因数是多少?
思路:
- 枚举2~sqrt(n)范围内所有数i;
- 只要i是n的因子,就让n一直除i,并赋值给n,直到i不再是n的因子为止;
- 在经历上述操作后,如果n仍然大于1,则次数为要求得的最大质因子。
Java实现:
int GetMaxPrime(int n)
{
int i, ans = 0;
for (i = 2; i*i <= n; i++)
{
while (n%i == 0)
{
ans = i;
n /= i;
}
}
if (n > 1)ans = n;
return ans;
}