平方序列
问题描述
小明想找到两个正整数 X 和 Y,满足
- 2019 < X < Y;
- 20192 , X^2, Y^2 组成等差数列。
请你求出在所有可能的解中,X + Y 的最小值是多少?
分析
若 a b c 为等差数列,则公差d = b - a = c - b
等式变形 :a + c = 2b,∴ c = 2b - a
代码
#include <stdio.h>
#include <math.h>
#define N 10000
int main()
{
int a = 2019 * 2019;
for (int X = 2020;X < N;X ++)
{
int b = X * X;
int c = 2 * b - a;
int Y = sqrt(c);
if (Y * Y == c)
{
printf("%d",X + Y);
return 0;
}
}
}