※ 引述《allenwlt (沒事)》之銘言:
: 有一個四位數abcd 符合a*b*c*d=a*b^2+c*d^2
: 例如 1233 = 12^2 +33^2
: 問 此四位數有哪些 最大值又是多少?
: 感謝大家
應該不是乘法 是普通的平方
設 10 <= x, y < 100
100x + y = x^2 + y^2
乘以 4 並配方可以得到
(2x-100)^2 + (2y-1)^2 = 10001
因此這是 m^2 + n^2 = 10001 的問題
================ 以下是理論 看不懂可以跳過 ===================
(Thm) p 質數, 則 m^2 + n^2 = p 有整數解 (m, n)
若且唯若 p = 2 或者 p 除以 4 餘 1
如果有整數解,則(m, n)是唯一解(不考慮交換和正負號的話)
這是有名的定理所以我懶的證(其實是很麻煩)
可以找 wiki 的 Fermat's theorem on sums of two squares
另外還有一個很明顯的
(Prop) (a^2 + b^2)(c^2 + d^2) = (ac-bd)^2 + (ad+bc)^2
這個證明用複數最直觀
把 (a+bi)(c+di) 炸開,然後取絕對值就結束了
這代表平方和乘上平方和仍然是平方和
最後由於
(Thm) Z[i] = { a+bi | a, b 整數 }
可以做「質因數分解」並擁有標準分解式(UFD)
這代表平方和一定可以往下拆,拆到變質數為止
=================== 因此可以得到以下的算法 ===================
質因數分解 10001 = 73 * 137
我們希望找到 a^2 + b^2 = 73
以及 c^2 + d^2 = 137
這可以直接暴力湊出 (a, b) = (8, 3)
以及 (c, d) = (11, 4)
現在考慮複數
(8+3i)(11+4i) = 76+65i
(8+3i)(11-4i) = 100+i
其他組合都是重複的(乘上i的都不算)
因此可得 m^2 + n^2 = 10001 有兩組解
(雖然直接灌wolframalpha也會得到)
(m, n) = (76, 65) or (100, 1)
後者基本湊不出 x, y
所以只有 2x-100 = +- 76 和 2y-1 = 65
因此 (x, y) = (12, 33), (88, 33) 兩組解
四位數只有兩種可能
1233 = 12^2 + 33^2
8833 = 88^2 + 33^2
最大的當然就是 8833 了
p.s. 我懷疑其實我寫過了(?)
--
嗯嗯ow o
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.14
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1543925639.A.192.html