给定 nn 个正整数 aiai,对于每个整数 aiai,请你按照从小到大的顺序输出它的所有约数。

输入格式

第一行包含整数 nn。
接下来 nn 行,每行包含一个整数 aiai。

输出格式

输出共 nn 行,其中第 ii 行输出第 ii 个整数 aiai 的所有约数。

数据范围

1≤n≤1001≤n≤100,
2≤ai≤2×1092≤ai≤2×109

输入样例:

2 6 8

输出样例:

1 2 3 6 1 2 4 8


  1. #include<iostream>
  2. #include<algorithm>
  3. #include<vector>
  4. using namespace std;
  5. vector<int> get_approximate(int n) {
  6. vector<int> res;
  7. for (int i = 1; i <= n/i; ++i) {
  8. if (n % i == 0) {
  9. res.push_back(i);
  10. if (i != n / i) res.push_back(n / i);
  11. }
  12. }
  13. sort(res.begin(),res.end());
  14. return res;
  15. }
  16. int main(){
  17. int n;
  18. cin >> n;
  19. while (n--) {
  20. int x;
  21. cin >> x;
  22. vector<int> res = get_approximate(x);
  23. for (int i = 0; i < res.size(); ++i)
  24. cout << res[i] << ' ' ;
  25. puts("");
  26. }
  27. return 0;
  28. }