2886 - 因数分解
时间限制 : 1 秒
内存限制 : 128 MB
各位在小学时都学过因数分解,都了解怎么样用纸笔计算出结果,现在由你来教电脑做因数分解。因数分解就是把一个数,切分为若干个质数的乘积,如 12=2^2 * 3 ,其中, 次方的符号以 ^ 来表示.
题目输入
一个整数x, 大于1 且 小于等于 1000000
题目输出
一个字串为整数x的因数分解答案,格式如样例。
输入/输出样例
输入格式
20
输出格式
2^2*5
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; }