测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A26677. 因子分解

填空题 困难

题目描述

因子分解

题目描述

输入一个数,输出其素因子分解表达式。

输入

输入一个整数 n (2≤n<100)。

输出

输出该整数的因子分解表达式。

表达式中各个素数从小到大排列。

如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。

输入样例

60

输出样例

2^2*3*5

参考答案

#include<bits/stdc++.h> using namespace std; int main() { int n, p[105] = {}, i = 2;//p[i]:因数i出现的个数 bool isFirst = true; cin >> n; while(n > 1) { if(n % i == 0) { p[i]++; n /= i; } else i++; } for(int i = 2; i <= 100; ++i) { if(p[i] > 0) { if(isFirst) isFirst = false; else cout << '*'; cout << i; if(p[i] > 1) cout << '^' << p[i]; } } return 0; }
上一题 下一题