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
【题解】
for i ,i=2的时候就一直试这个数字能不能被2整除 能的话就除,然后再判断能不能被2整除,能的话就再除。。然后i=3再继续试被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; }