解题思路:
先找出所有的质因子,压紧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语言代码)浏览:553 |
【回文数(二)】 (C语言代码)浏览:728 |
【密码】 (C语言代码)浏览:333 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:587 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:904 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:780 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:567 |
Hello, world! (C++代码)浏览:1744 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:505 |
简单的a+b (C语言代码)浏览:572 |