解题思路:
先找出所有的质因子,压紧vector,随后通过迭代器去重;
注意事项:
去重时,遍历要从迭代器的begin+1开始;
参考代码:
#include<iostream> #include<vector> using namespace std; int main(){ int n; vector<int> nums; vector<int>::iterator it; cin>>n; int i_n=n ; for(int i=2;i<i_n;i++ ) { while(n%i==0) { nums.push_back(i); n=n/i; } if(n==1) break; } //删除重复的数 int num=nums[0]; for(it = nums.begin()+1;it !=nums.end();it++){ if(*it==num) { nums.erase(it); } else num=*it; } for(int i=0;i<nums.size();i++){ cout<<nums[i]<<" "; } }
0.0分
1 人评分