#29728: 使用map解法


4A7G0006 (anonymous)

學校 : 南臺科技大學
編號 : 188789
來源 : [36.237.121.240]
最後登入時間 :
2022-03-26 01:19:12
a010. 因數分解 | From: [36.237.121.240] | 發表日期 : 2022-03-26 01:36

解提思路

先將得到的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; ,最後在去判斷是否印出乘號即可!

 
ZeroJudge Forum