题目链接:Gym-102302B
(试除法)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
const long long int maxx=1e6+10;
int main()
{
long long int q[maxx];
long long int a,b;
cin>>a>>b;
long long int top=0;
long long int w=sqrt(a);
for(long long int i=1; i<=w; i++)
{
if(a%i==0)
{
if(i>=b&&i%b==0)
{
q[top++]=i;
}
long long int x=a/i;
if(x!=i&&x%b==0&&x>=b)
{
q[top++]=x;
}
}
}
sort(q,q+top);
for(int i=0; i<top; i++)
{
if(!i)
cout<<q[i];
else cout<<" "<<q[i];
}
cout<<endl;
return 0;
}