儿童节快乐题解

祝各位 OIer 儿童节快乐!在儿童节切掉本题!

upd on 2025.5.30:补充计算时的注意点。

upd on 2025.5.31:又到了一年中的儿童节,本蒟蒻祝各位儿童节快乐,在儿童节切掉本题。

前言:

一名蒟蒻到家的 Oier 为这个题花费了半小时。

题目链接

叫你输出满足"一个数加 10120300500 是完全平方数且这个数减 10120300500 也是完全平方数"的这些数的和。

思路:

我们把每次需要加的数看为 n。

由于你不知道最大的 n 有多大,所以我们希望从 n-10120300500 或 n+10120300500 来突破。把 sqrt(n-10120300500) 看作 a,sqrt(n+10120300500) 看作 b,那么 a²-b² 根据平方差公式可得结果是 (a+b)(a-b)=20240601000,枚举 (a+b) 即可。遇到正确的 n 直接加入答案就可以了。

最终由于这个题是结果填空题,把最终的结果输出就能 AC。注意:真实计算需要使用 long long 计算,在此本蒟蒻已经帮你们算过了。

由于答案过大,需要转成字符串输出。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<"37044368843012180000";
    return 0;
}

珍惜生命,远离抄袭。