解题思路:
先找出所有的质因子,压紧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语言代码)浏览:931 |
【计算两点间的距离】 (C语言代码)浏览:879 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:459 |
WU-输出正反三角形 (C++代码)浏览:1018 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:853 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:598 |
三角形 (C语言代码)浏览:903 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:262 |
简单的a+b (C语言代码)浏览:478 |