Time Limit: 3 second
Memory Limit: 2 MB
【問題描述】
一個數可以分解成其質因子的乘積.如24=2*2*2*3,26=2*13;100=2*2*5*5。現要你輸入一個整數,求出它的質因子。
【輸入】
共一行。内容是所要求解的整數
【輸出】
一行。輸出分解的結果
【輸入樣例】
12
【輸出樣例】
12=2*2*3
【題解】
#include <cstdio>
const int MAXN = 10000;
int n,a[MAXN],number=0;
void input_data()
{
scanf("%d",&n);
}
void get_ans()
{
int temp = n;
for (int i=2;i<=n;i++)
{
while ((temp % i) == 0) //從2開始枚舉,能被i整除 就除然後記錄
{
a[++number] = i;
temp /= i;
}
if (temp <i) break;
}
}
void output_ans() //輸出答案 number 用于輸出格式
{
printf("%d=",n);
for (int i = 1;i <= number-1;i++)
printf("%d*",a[i]);
printf("%d",a[number]);
}
int main()
{
input_data();
get_ans();
output_ans();
return 0;
}