游客 Signup | Login
中文 | En

2886 - 因数分解

各位在小学时都学过因数分解,都了解怎么样用纸笔计算出结果,现在由你来教电脑做因数分解。因数分解就是把一个数,切分为若干个质数的乘积,如 12=2^2 * 3 ,其中, 次方的符号以 ^ 来表示.


Input

一个整数x, 大于1 且 小于等于 1000000

Output

一个字串为整数x的因数分解答案,格式如样例。

Examples

Input

20

Output

2^2*5

Solution C++

#include <bits/stdc++.h>
using namespace std;

void f(int x) {
	bool flag = true;
	for (int i = 2; i <= x / i; i ++) {
		if (x % i != 0) continue;
		
		int cnt = 0;
		while (x % i == 0) {
			cnt ++;
			x /= i;
		}
		
		if (!flag) cout << '*';
		flag = false;
		
		if (cnt > 1) printf("%d^%d", i, cnt);
		else if (cnt == 1) printf("%d", i);
	}
	if (x != 1) {
		if (flag) printf("%d", x);
		else printf("*%d", x);
	}
}

int main() {
	int n;
	cin >> n;
	
	f(n);
	
	return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题