两个注意要点:
1、从小到大找符合的prime
2、如果输入1,输出1=1
#include #include #include using namespace std; mapresult; int judgePrime(int n) { for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) return 0; } return 1; } int main() { long n; cin >> n; int back = n; if (n == 1) { cout << "1=1"; return 0; } int i = 2; while(n!=1){ if (n >= i && n % i == 0) { if (judgePrime(i)) { result[i]++; n = n / i; } else if (i == 2) i = 3; else i += 2; } else if (i == 2) i = 3; else i += 2; } printf("%ld=", back); int size = result.size(); int count = 1; for (auto it : result) { cout << it.first; if (it.second != 1) cout << "^" << it.second; if (count != size) cout << "*"; count++; } return 0; }
上一篇 快速排序(C++实现),通俗易懂的讲解
下一篇 C++快速排序
版权所有 (c)2021-2022 MSHXW.COM
ICP备案号:晋ICP备2021003244-6号