一个数n的最大质因子
1 #include<cstdio> 2 #include<cmath> 3 using namespace std; 4 5 #define Max(x, y) (x > y ? x : y) 6 7 int main() 8 { 9 int n, m; 10 while(~scanf("%d",&n)) //1没有最大质因子 11 { 12 int tn = n; 13 int mx = -1; 14 for(int i=2; i*i<=n; i++) 15 { 16 if(n%i==0) 17 { 18 mx = Max(mx, i); 19 while(n%i==0) n /= i; 20 } 21 } 22 mx = Max(mx, n); 23 printf("%d\n",mx); 24 } 25 return 0; 26 }