天天看點

【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
      

【題解】

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