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

分解质因数

时间:2018-07-06 01:31:12      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:mes   代码   没有   can   span   pac   break   iostream   for   

对于一个将要分解的数,我们从小到大枚举它可能被分解出来的每一个因子,从小到大枚举,这样就可以保证在分解出大的因子之前,所有的小的因子全部被除完,从而保证最终所有的因子一定是质数。

虽然分解质因数本身没有进行质数判断,但是还是求出了质因数。。哈哈

while(n!=1)
        {
            for(int i=2;i<=n;i++)
            {
                if(n%i==0)
                {
                    n/=i;
                    printf("%d",i);
                    if(n!=1)printf("*");
                        break;
                }
            }
        }

通过代码可以看到,我们每分解出来一个因子之后,还是从最小的2继续枚举,从而保证分解的顺利进行,2被一个一个剔出来,全部剔完了之后就该剔3了。

完整的代码如下,T组数据每组数据一个n,对n进行分解质因数。

 1 #include <cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int n;
 5 int T;
 6 int main()
 7 {
 8     cin>>T;
 9     while(T--)
10     {
11         scanf("%d",&n);
12         //printf("%d=",n);
13         while(n!=1)
14         {
15             for(int i=2;i<=n;i++)
16             {
17                 if(n%i==0)
18                 {
19                     n/=i;
20                     printf("%d",i);
21                     if(n!=1)printf("*");
22                         break;
23                 }
24             }
25         }
26         cout<<endl;
27     }
28     return 0;
29 }

 

分解质因数

标签:mes   代码   没有   can   span   pac   break   iostream   for   

原文地址:https://www.cnblogs.com/aininot260/p/9270842.html

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