天天看點

C語言 分解質因數。例如:輸入90,列印出90=2*3*3*5。

将一個正整數分解質因數。例如:輸入90,列印出90=233*5。

1.程式分析:用短除法求解。

對n進行分解質因數,應先找到一個最小的質數i,然後按下述步驟完成:

(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,n本身就是質數,列印出n即可。

(2)如果n!=i,但n能被i整除,則應列印出i的值,并用n除以i的商,作為新的正整數n,重複執行第一步。

(3)如果n不能被i整除,則用i+1作為i的值,重複執行第一步。

2.上代碼:

#include "stdio.h"
main()
{
  int n,i;
  printf("\n輸入一個數:\n");
  scanf("%d",&n);
  printf("%d=",n);//原樣輸出 
  for(i=2;i<=n;i++)
    while(n!=i)
    {
      if(n%i==0)
      {
        printf("%d*",i);//原樣輸出 
        n=n/i;//根據短除法,用商作新的n,即被除數。接着重複循環判斷操作。 
      }
      else//等價于if(n%i!=0),哪個簡潔用哪個。 
        break;
    }
  printf("%d",n);//原樣輸出 
}