1 solutions
-
0
C++ :
#include <iostream> using namespace std; int main() { long long n, a; int p = 0; // 标志变量,控制乘号输出 cin >> n; a = n; // 遍历可能的质因数,从2开始到i*i <=n for (long long i = 2; i * i <= n; i++) { if (a % i == 0) { // 发现质因数i int s = 0; while (a % i == 0) { // 除尽所有i的因子 a /= i; s++; } // 输出格式处理 if (p) cout << "* "; if (s != 1) cout << i << "^" << s << " "; else cout << i << " "; p = 1; // 标记已有因数输出 } } // 处理剩余质因数 if (a != 1) { if (a != n) cout << "* " << a; // 分解后的剩余质数 else cout << a; // n本身是质数 } return 0; }
- 1
Information
- ID
- 103
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By