码迷,mamicode.com
首页 > 其他好文 > 详细

分解质因数 样例代码

时间:2017-08-13 20:50:07      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:math   amp   div   blog   clu   turn   bsp   prim   bre   

 1 #include<cmath>
 2 #include<cstdio>
 3 #include<algorithm>
 4 const int MAXN = 1000;
 5 
 6 int num[MAXN << 1],cnt = 0;
 7 int bp[MAXN],prime[MAXN];
 8 bool flag = false;
 9 
10 inline void makep(int n)
11 {
12     bp[1] = true;
13     int cnt = 0;
14     for(int i = 2;i <= n;++ i)
15     {
16         if(!bp[i]) prime[++ cnt] = i;
17         for(int j = 1;j <= cnt;++ j)
18         {
19             if(prime[j]*i > n)    break;
20             bp[i*prime[j]] = true;
21             if(i%prime[j] == 0)    break;
22         }
23     }
24 }
25 
26 void solve(int a)
27 {
28     if(!bp[a])
29     {
30         num[a] ++;
31         cnt ++;
32         flag = true;
33         return;
34     }
35     for(int i = 2;i*i <= a;++ i)
36     {
37         if(flag)    return;
38         if(!bp[i] && a%i == 0)
39         {
40             num[i] ++;
41             cnt ++;
42             solve(a/i);
43         }
44     }
45 }
46 
47 int main()
48 {
49     int a;
50     scanf("%d",&a);
51     makep(a+1);
52     solve(a);
53     for(int i = 1;i <= a;++ i)
54         while(num[i])
55             printf("%d ",i),num[i] --;
56 /*    for(int i = 1;i <= a;++ i)
57         if(num[i])
58             while(a%i == 0)
59                 printf("%d ",i),a/=i;*/
60     return 0;
61 }

 

分解质因数 样例代码

标签:math   amp   div   blog   clu   turn   bsp   prim   bre   

原文地址:http://www.cnblogs.com/shingen/p/7354621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!