1. 程式人生 > 其它 >2032:【例4.18】分解質因數

2032:【例4.18】分解質因數

【題目描述】

把一個合數分解成若干個質因數乘積的形式(即求質因數的過程)叫做分解質因數。分解質因數(也稱分解素因數)只針對合數。

輸入一個正整數nn,將nn分解成質因數乘積的形式。

【輸入】

一個正整數nn。

【輸出】

分解成質因數乘積的形式。質因數必須由小到大,見樣例。

【輸入樣例】

36

【輸出樣例】

36=2*2*3*3

【提示】

【資料範圍】

對於所有資料,2n200002≤n≤20000。

#include<stdio.h>
#include<math.h>
int asd(int n)
{
    int a=1;
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
            a=0;
            break;
        }
    }
    return a;
}
int main()
{
    int n,y,i,j;
    scanf("%d", &n);
    y=n;
    i=2;
    printf("%d=",n);
    while(1)
    {
        if(asd(i)&&(y%i==0)) 
        {
            y/=i;
            if(y==1)
            {
                printf("%d\n", i);
                break;
            }
            else printf("%d*",i);
        }
        else i++;
    }
    return 0;
}