算法笔记.求约数
代码实现:
#include<iostream>
using namespace std;
#include<vector>
void check(int x)
{vector<int> v;for(int i = 1;i<= x/i;i++){if(x%i == 0) {cout << i<<" ";v.push_back(i);}}for(int i = v.size()-1;i>=0;i--){if(x/v[i] == v[i]) continue;cout << x/v[i]<<" ";}cout <<endl;
}int main()
{int n;cin>>n;while(n--){int x;scanf("%d",&x);check(x);}return 0;
}
注意:约数只需要枚举到 ,对应的大于
约数直接算出来,相同约数只取一个