我的作法是先建立一個包含1-100所有質數的質數表
在創建一個map物件,儲存每個質數對應的數量
用一個迴圈跑2~N,並針對每個 i ,從質數表查表的方式檢查 i 被哪個質數整除,
再使用map[質數]++ 的方式儲存次數,一直重複直到 i =1
map<int,int> num_list;
for(int i=2;i<=n;i++){
int temp = i;
for(int j=0;1<temp;j++){
if(temp%prime_list[j]==0){
temp /= prime_list[j];
num_list[prime_list[j]]++;
j--;
}
}
}
|