大家好,我是ЭНТДЖЕЙ,今天是我2026年第二十三次正式发题解!
2026年发布的题解!
能不能点个赞
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
必备知识点:
* 完全平方公式
首先简化题意:
* 对于给定的 nnn, ***, eee,计算出 ppp, qqq,要求满足 pq=n、ed=(p−1)(q−1)+1pq = n、ed = (p - 1)(q- 1) + 1pq=n、ed=(p−1)(q−1)+1
然后就是写代码:
* 暴力枚举 ppp 有 60 的高分(真的不低了)
* 暴力枚举有个小技巧,∵p≤qp≤qp≤q ∴ppp仅仅需要枚举到 n\sqrt{n}n
* 那正解怎么求呢,需要利用一些数学知识:
已知 pq=n,ed=(p−1)(q−1)+1我们根据 ed=(p−1)(q−1)+1 来推导一些东西∵ ed=(p−1)(q−1)+1∴ ed=p(q−1)−1×(q−1)+1∴ ed=pq−p−q+1+1∴ ed=pq−p−q+2∵ pq=n∴ ed=n−p−q+2∴ ed−n−2=(−p)−q∴ (ed−n−2)×(−1)=[(−p)−q]×(−1)∴ (−ed)−(−n)−(−2)=[−(−p)]−(−q)∴ (−ed)+n+2=p+q∴ n+2−ed=p+q设 m=n+2−ed则 m=p+qm2=(p+q)2m2=p2+2pq+q2m2−4n=p2+2pq+q2−4pqm2−4n=p2+q2+2pq−4pqm2−4n=p2+q2−2pqm2−4n=(p−q)2m2−4n=(p−q)2m2−4n=p−q设 t=m2−4n则 t=p−q整理后得出:{m=p+qt=p−q相加得:m+t=(p+q)+(p−q)m+t=p+q+p−qm+t=2p2p=m+tp=m+t2相减得:m−t=(p+q)−(p−q)m−t=p+q−p+qm−t=2q2q=m−tq=m−t2\begin{aligned}
& \text{已知 } pq = n,\quad ed = (p-1)(q-1)+1 \\[6pt] & \text{我们根据 } ed = (p-1)(q-1)+1 \text{ 来推导一些东西} \\[6pt] & \because\ ed = (p-1)(q-1)+1 \\ & \therefore\ ed = p(q-1) - 1 \times (q-1) + 1 \\ & \phantom{\therefore\ } ed = pq - p - q + 1 + 1 \\ & \phantom{\therefore\ } ed = pq - p - q + 2 \\[4pt] &
\because\ pq = n \\ & \therefore\ ed = n - p - q + 2 \\ & \phantom{\therefore\ } ed - n - 2 = (-p) - q \\ & \phantom{\therefore\ } (ed - n - 2) \times (-1) = \big[(-p) - q\big] \times (-1) \\ & \phantom{\therefore\ } (-ed) - (-n) - (-2) = \big[-(-p)\big] - (-q) \\ & \phantom{\therefore\ } (-ed) + n
+ 2 = p + q \\ & \phantom{\therefore\ } n + 2 - ed = p + q \\[6pt] & \text{设 } m = n + 2 - ed \\ & \text{则 } m = p + q \\[6pt] & m^2 = (p+q)^2 \\ & m^2 = p^2 + 2pq + q^2 \\ & m^2 - 4n = p^2 + 2pq + q^2 - 4pq \\ & m^2 - 4n = p^2 + q^2 + 2pq - 4pq \\ & m^2 - 4n = p^2 + q^2 - 2pq \\ & m^2 - 4n =
(p-q)^2 \\ & \sqrt{m^2 - 4n} = \sqrt{(p-q)^2} \\ & \sqrt{m^2 - 4n} = p - q \\[6pt] & \text{设 } t = \sqrt{m^2 - 4n} \\ & \text{则 } t = p - q \\[6pt] & \text{整理后得出:} \\ & \begin{cases} m = p + q \\ t = p - q \end{cases} \\[6pt] & \text{相加得:} \\ & m + t = (p+q) + (p-q) \\ & m + t = p + q + p - q \\ & m
+ t = 2p \\ & 2p = m + t \\ & p = \frac{m+t}{2} \\[6pt] & \text{相减得:} \\ & m - t = (p+q) - (p-q) \\ & m - t = p + q - p + q \\ & m - t = 2q \\ & 2q = m - t \\ & q = \frac{m-t}{2} \end{aligned}
已知 pq=n,ed=(p−1)(q−1)+1我们根据 ed=(p−1)(q−1)+1 来推导一些东西∵ ed=(p−1)(q−1)+1∴ ed=p(q−1)−1×(q−1)+1∴ ed=pq−p−q+1+1∴ ed=pq−p−q+2∵ pq=n∴ ed=n−p−q+2∴ ed−n−2=(−p)−q∴ (ed−n−2)×(−1)=[(−p)−q]×(−1)∴ (−ed)−(−n)−(−2)=[−(−p)]−(−q)∴ (−ed)+n+2=p+q∴ n+2−ed=p+q设 m=n+2−ed则 m=p+qm2=(p+q)2m2=p2+2pq+q2m2−4n=p2+2pq+q2−4pqm2−4n=p2+q2+2pq−4pqm2−4n=p2+q2−2pqm2−4n=(p−q)2m2−4n
=(p−q)2 m2−4n =p−q设 t=m2−4n 则 t=p−q整理后得出:{m=p+qt=p−q 相加得:m+t=(p+q)+(p−q)m+t=p+q+p−qm+t=2p2p=m+tp=2m+t 相减得:m−t=(p+q)−(p−q)m−t=p+q−p+qm−t=2q2q=m−tq=2m−t
蒟蒻作者太拉了,建议你们多看看理解一下捏
* 综上所述,可以发现 m=n+2−edm = n + 2 - edm=n+2−ed, t=m2−4nt = \sqrt{m^2 - 4n}t=m2−4n , p=m+t2p = \frac{m+t}{2}p=2m+t , q=m−t2q = \frac{m-t}{2}q=2m−t
* 显然,当 ttt 不是整数时,当m+tm + tm+t 或 m−tm - tm−t 除以 222 不是整数 (即不是偶数)时是没有解的(题目说了 p,qp, qp,q 是整数)
* 所以非常好判断
最后输出:
* 输出结果,记得取 minminmin 和 maxmaxmax 以防出错
完整代码:
我感觉我都不需要贴代码你们应该能写
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
完结撒花