问题
https://www.acwing.com/problem/content/871/
分析
约数指可以整除被除数的数,通过 n % i == 0 判断结束后加到 vector 数组中即可。对于频繁向队尾加入数据的使用 vector 中的 push_back() 会相当方便
代码
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std ;
vector<int> get_divisors(int a)
{
vector<int> res ;
for(int i = 1 ; i <= a / i ; i ++)
{
if(a % i == 0) res.push_back(i) ;
if(i != a / i) res.push_back(a / i) ;
}
sort(res.begin(), res.end()) ;
return res ;
}
int main()
{
int n ;
cin >> n ;
while(n --)
{
int a ;
scanf("%d", &a) ;
auto res = get_divisors(a) ;
for(int i = 0 ; i < res.size() ; i ++)
printf("%d ", res[i]) ;
puts("") ;
}
}