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