题目入口
题目链接:整数唯一分解
题目意思:
整数的唯一分解定理:对于给定一个整数 n(n>1) 则必有分解式:
且这个分解是唯一的,我们称这个式子为整数的标准分解式。
Input
45 1200 34398 53
Output
45=3^2*5^1 1200=2^4*3^1*5^2 34398=2^1*3^3*7^2*13^1 53=53^1
题目思路
很明显此题让我们用分解质因数来计算出来答案,由小到大输出质因数及其个数。
Code:
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
while (cin >> N) {
bool isfirst = true;
cout << N << "=";
for (int i = 2; i * i <= N; i++) {
int c = 0;
while (N % i == 0) {
c++;
N /= i;
}
if (c > 0) {
if (!isfirst) cout << "*";
isfirst = false;
cout << i << "^" << c;
}
}
if (N > 1) {
if (!isfirst) cout << "*";
cout << N << "^1";
}
cout << "\n";
}
return 0;
}