分解质因数

-----------------------------------------------------------

题目:编程将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

--------------------------------------------------------------------

 

while (n%i == 0){}  目的是为了使质因数 i 全部除尽。

  比如: 100 = 2 2 5 5 (有重复的2,5需要用循环搞定)。

为何 i 肯定是质因数呢?

  因为这里是从最小的质因数2开始除的,已经将最小的质因数全部剔除掉了。

所以大的 不可能再分成几个较小的质因数。

 1 /*
 2     Title:分解质因数
 3     Author:Dojking
 4 */
 5 #include <stdio.h>
 6 
 7 int main()
 8 {
 9     int i,n;
10 
11     scanf("%d", &n);
12     for (i = 2; n != 1; i++)
13     {
14         while (n % i == 0)
15         {
16             n /= i;
17             printf("%d ",i);
18         }
19     }
20 
21     return 0;
22 }

 

posted on 2014-03-24 22:46  Dojking  阅读(314)  评论(0编辑  收藏  举报

导航