一种简单求解整数的质因数分解的方法

 1 #include<stdio.h> 
 2 int main()
 3 {
 4     int a;
 5     printf("输入一个数,程序将给出它的质数分解。\n");
 6     scanf("%d",&a);
 7     printf("a=");
 8     int i=2;
 9     while(i<=a)
10     {
11         while(a%i==0)
12         {
13             a=a/i;
14             printf("%d",i);
15             if(a!=1)
16                 printf("*");
17         }
18         
19         i++;
20     }
21     printf("\n");
22 //    printf("2x2x11x17x101x1307=%d\n",2*2*11*17*101*1307);    
23 
24     
25     return 0;
26 }

实现思想:

i从2开始,对a做除法,能整除的时候a=a/i,记录质因数i,然后继续用a除以i,直到a不能被i整除,然后i++,继续重复上面的操作,直到i=a。

缺点:

每一个质因数直接输出,没有保存起来,可以用一个链表来保存;

分解的过程在main中完成,可以写成一个函数。

posted on 2015-04-15 22:35  tbhdwx  阅读(208)  评论(0)    收藏  举报