题意:c * q + m == n,已知n,m,求q的可能,q>m;
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
const int maxn = 5000000 + 10;
int main()
{
ll n,m;
int Tcase;
scanf("%d",&Tcase);
for(int ii = 1; ii <= Tcase; ii ++)
// while( ~ scanf("%d%d"),&n,&m)
{
scanf("%lld%lld",&n,&m);
int t = n - m;
printf("Case %d:",ii);
if(n <= m)
{
puts(" impossible");
continue;
}
set<ll>s;
for(ll i = 1; i *i <= t; i ++)
{
if(t % i == 0)
{
if(i > m)
s.insert(i);
if(t /i > m)
s.insert(t/i);
}
}
// if(i *i == t)
// s.insert(i);
if(s.size() == 0)
{
cout << " impossible" << endl;
continue;
}
set<ll>::iterator it;
for(it = s.begin(); it != s.end(); it ++)
{
printf(" %lld",*it);
}
printf("\n");
}
return 0;
}