这道题可以转换思路:
问的是最大的质因数,即n除以最小质因数。
若直接求最大质因数会TLE超时。
很明显,2到sqrt(n)的个数会小于sqrt(n)到n-1;
#include<bits/stdc++.h>
using namespace std;
//判断是否质数函数
int zhishu(int n)
{
if(n==2) return 1;
int flag=1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main()
{
long long int n,x;
cin>>n;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0&&zhishu(i))
{
cout<<n/i;
break;
}
}
return 0;
}