若正整数a,b使等式a+ (a+b)(a+b-1)/2=2009成立,求a和b的值

来源:百度知道 编辑:UC知道 时间:2024/05/21 14:07:15
请快一点,今天要
不好意思,我才初二~~

只求非负整数解,不妨设a≥b≥0,记x=a+b,y=a-b,则x≥y≥0。原方程等价于x^2+y=4018,则x^2+x≥4018≥x^2,62*63=3906,64^2=4096,所以x=63,y=49。非负整数解为a=56,b=7;或a=7,b=56。

(注:这是一条有无穷个格点(横纵坐标都为整数的点)的抛物线)

a=56
b=7

#include <stdio.h>
int main()
{
int a, b;
for(a = 1; a < 2009; a++)
for(b = 1; b < 2009; b++)
if(a+ (a+b)*(a+b-1)/2 == 2009)
printf("a=%d b=%d\n", a, b);
return 0;
}