解提思路
先將得到的n進行拆解,
先將一個因數設定為a=2,使用迴圈進行每次,當n%a==0的時候 n/=a 並且將記錄到的a存到map中,若map中該數存在則+1,反之、當n%a!=0時,讓a++最後存到map中的數都會為質數
map<int, int>mp;
cin >> n;
while (n > 1) {
if (n%a == 0) {
n /= a;
mp[a] += 1;
}
else {
a += 1;
}
}
最後就是將map進行判斷,若map得到的數>1時則印出 cout << o.first << "^" << o.second; 若無則 cout << o.first; ,最後在去判斷是否印出乘號即可!