AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

P12345 [蓝桥杯 2025 省 A 第二场 填空题] 双子星的讯息(数学推导)

作者: 作者的头像   DKing2917 ,  2025-06-11 10:22:38 · 天津 ,  所有人可见 ,  阅读 4


0


题目

https://www.luogu.com.cn/problem/P12345

思路

对于没有明确给出搜索范围的“计数”或“求解”问题,直接进行暴力枚举几乎总是错误的,除非能从数学上证明所有解都必然在一个有限且可控的范围内。

需要进行数学转换,直接不动脑子进行枚举一定是不能得到正确答案的。

数学推导过程


第一步:建立数学模型

根据题目描述,我们需要找到一个正整数 $n$,使得 $n+20255202$ 和 $n+10244201$ 均为完全平方数。
设这两个完全平方数分别为 $a^2$ 和 $b^2$(其中 $a, b$ 为正整数),从而问题转化为:求解 $n$ 的个数,$n$ 满足以下方程组:

$$ \begin{cases} n + 20255202 = a^2 \\ n + 10244201 = b^2 \end{cases} $$

由于 $n$ 是正整数,可以推断出 $a^2 > 20255202$ 且 $b^2 > 10244201$。同时,显然有 $a^2 > b^2$,即 $a > b$。

第二步:消元与变换

为了找出 $a$ 和 $b$ 之间的关系,我们将方程组中的两个式子相减,以消去变量 $n$:

$$ (n + 20255202) - (n + 10244201) = a^2 - b^2 $$

简化后得到:

$$ a^2 - b^2 = 10011001 $$

这一步是解题的核心突破口,它将问题与变量 $n$ 解耦,转向研究 $a$ 和 $b$ 的性质。

第三步:应用平方差公式

我们对上一步得到的等式左边应用平方差公式:

$$ (a - b)(a + b) = 10011001 $$

这个变换将问题从寻找两个平方数,转化为了对整数 10011001 进行因数分解。

第四步:引入因子并分析

为了方便表示,我们令 10011001 的一对因子为 $d$ 和 $D$,即:

  • $d = a - b$
  • $D = a + b$

则原方程变为:

$$ d \cdot D = 10011001 $$

根据 $a > b > 0$ 的事实,我们可以确定因子 $d$ 和 $D$ 的性质:
1. $D = a+b > a-b = d$,所以 $D$ 是较大的因子。
2. $d = a-b > 0$,所以 $d$ 和 $D$ 都是正整数。

第五步:求解与回代

现在我们有了一个关于 $a$ 和 $b$ 的新方程组:

$$ \begin{cases} a + b = D \\ a - b = d \end{cases} $$

联立求解这个方程组,可以得到 $a$ 和 $b$ 的表达式:

$$ a = \frac{D+d}{2} $$

$$ b = \frac{D-d}{2} $$


总结:
问题的本质:我们只需要找到 10011001 有多少对不同的因子 (d, D),然后根据这对因子求出一对a,b,每一对a,b都对应着一个n。

其中,a > sqrt(20255202)和b > sqrt(10244201)是等价的,都满足n>0,只需判断其一即可。

Code

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    int res = 0;
    int n = 10011001;
    for(int i = 1; i <= n/i; i ++)
    {
        if(n % i == 0)
        {
            if(n / i != i) //满足D>d条件
            {
                int d = i, D = n/d;
                int a = (D+d) / 2;//根据关系计算出a

                if(a > sqrt(20255202))//满足范围条件
                    res ++;             
            }
        }
    }
    printf("%d",res);
    return 0;
}

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息