1. 程式人生 > >C語言將一個正整數分解質因數程式碼及解析

C語言將一個正整數分解質因數程式碼及解析

將一個正整數分解質因數。例如:輸入888,打印出888=2*2*2*3*37。

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

  • 如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。
  • 如果n>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數你n,重複執行第一步。
  • 如果n不能被k整除,則用k+1作為k的值,重複執行第一步。

程式碼實現:

#include <stdio.h>

int main(){
 int n;  // 使用者輸入的整數
 int i;  // 迴圈標誌

 printf("輸入一個整數:");
 scanf("%d",&n);
 printf("%d=",n);

 // n>=2才執行下面的迴圈
 for(i=2; i<=n; i++){
  while(n!=i){
   if(n%i==0){
    printf("%d*",i);
    n=n/i;
   }else
    break;
  }
 }
 printf("%d\n",n);

 return 0;
}

執行結果:

C語言將一個正整數分解質因數程式碼及解析