数论(二)

一 .试除法求约数

#include<bits/stdc++.h>
using namespace std;
vector<int> get_res(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);   //注意n=i*i的情况
        }
    }
    sort(res.begin(),res.end());
    return res;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        auto res=get_res(n);
        for(auto x:res)
        {
            printf("%d ",x);
        }
        printf("\n");
    }
    
}
posted @ 2020-07-20 22:01  JLNU-航  阅读(151)  评论(0编辑  收藏  举报