C 練習(xí)實例14 - 將一個正整數(shù)分解質(zhì)因數(shù)

C 語言經(jīng)典100例 C 語言經(jīng)典100例

題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成:

  • (1)如果這個質(zhì)數(shù)恰等于(小于的時候,繼續(xù)執(zhí)行循環(huán))n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,另外 打印出即可。
  • (2)但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)n.重復(fù)執(zhí)行第二步。
  • (3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。
//  Created by o2fo.com on 15/11/9.
//  Copyright © 2015年 W3Cschool教程. All rights reserved.
//

#include<stdio.h>
int main()
{
    int n,i;
    printf("請輸入整數(shù):");
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2;i<=n;i++)
    {
        while(n%i==0)
        {
            printf("%d",i);
            n/=i;
            if(n!=1) printf("*");
        }
    }
    
    printf("\n");
    return 0;
}

以上實例輸出結(jié)果為:

請輸入整數(shù):90
90=2*3*3*5

C 語言經(jīng)典100例 C 語言經(jīng)典100例