#include
int main()
{
int n,m;
int l,i,a,b,s;
while (scanf("%d%d",&n,&m),n + m)
{
l = (int)sqrt(2 * m);
for (i = l; i >= 1; i--)
{
s = (2*m + i - i*i)/2;
if(s % i == 0)
{
a = s / i;
if(a > n) break;
printf("[%d,%d]\n",a,a + i - 1);
}
}
printf("\n");
}
return 0;
}
我做的时候也是缩小了他的范围来做的,然后根据一边算,给你看看代码