---
# System prepended metadata

title: Zero judge  a010. 因數分解
tags: [Zero judge]

---

# Zero judge  a010. 因數分解
```C++=
#include <iostream>
using namespace std;
//是否是質數 是的話直接輸出
//如果不是質數 除到不能除 且因數由小寫到大
//因數次方大於一 ,以指數型式輸出
//避免重複輸出*
int main()
{
	int input;
	cin >> input;
	int times;//次方
	for (int i = 2; i <= input; i++)//因為只能被1除就是質數,迴圈從2開始
	{
		times = 0;//次方一開始是0

		while (input % i == 0)//目前因數能整除就繼續,直到不能整除,會i++,前往下個能整除的因數
		{
			input /= i;//input=input/i;
			times++;//次方+1
						
		}
		if (times > 0)//這個判斷可以避免輸出重複的* 如果出現多次方的因數 也不會重複印出*
		{
			if (times == 1)//一次方的話直接輸出因數i
			{
				cout << i;
			}
			else if (times > 1)//次方大於1的狀況,顯示指數
			{
				cout <<i << "^" << times ;// 2^3*5  2的三次方
			}
			if (input >1 )//有剩下的質因數,輸出*
			{
				cout << " * ";

			}
		}				
	}
	if (input > 1)//最後剩下的質因數,直接輸出(最後一個質因數)
	{
		cout << input;

	}
}
```
###### tags: `Zero judge`