一个数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 }

 

posted @ 2014-11-29 16:00  无道圣君  阅读(807)  评论(0编辑  收藏  举报