【2019】数的质因子

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


 

posted @ 2017-10-06 19:23  AWCXV  阅读(278)  评论(0编辑  收藏  举报