C 練習實例14 - 將一個正整數分解質因數
題目:將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。
程式分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:
- (1)如果這個質數恰等於(小於的時候,繼續執行迴圈)n,則說明分解質因數的過程已經結束,另外 列印出即可。
- (2)但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數n.重複執行第二步。
- (3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。
實例
// Created by www.xuhuhu.com on 15/11/9.
//
//
#include<stdio.h>
int main()
{
int n,i;
printf("請輸入整數:");
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;
}
以上實例輸出結果為:
請輸入整數:90 90=2*3*3*5