#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> get_divisors(int n){
vector<int > res;
for(int i=1;i<=n/i;i++){
if(n%i==0){
res.push_back(i);
if(i!=n/i)res.push_back(n/i);
}
}
sort(res.begin(),res.end());
return res;
}
int main(){
int n;
cin>>n;
while(n--){
int x;
cin>>x;
auto res=get_divisors(x);
for(auto t:res)
cout<<t<<" ";
cout<<endl;
}
return 0;
}
约数这个就相对简单了,其实就是只需要枚举小于根号a的小约数,同时将对应的大约数求出。时间复杂度是n*根号a(a为输入的数字大小,n为输入多少个数)