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;
}