解题思路:
先找出所有的质因子,压紧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 人评分
C二级辅导-计负均正 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:701 |
C二级辅导-计负均正 (C语言代码)浏览:516 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:525 |
【明明的随机数】 (C++代码)浏览:781 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:587 |
WU-字符串比较 (C++代码)浏览:756 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:557 |
【亲和数】 (C语言代码)浏览:599 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:616 |