ベース-10では、すべての完全な正方形はで終わる0、1、4、5、6、又は9。
ベース-16では、すべての完全な正方形はで終わる0、1、4、または9。
Nilknarfは、この答えの理由とこれをうまく解決する方法について説明していますが、ここでも簡単に説明します。
10 進数のNを 2乗すると、「1」桁は「10」桁や「100」桁などの影響を受けません。だけで「1」の数字Nはの「1」の数字に影響するN 2を簡単に(多分ないgolfiest)の方法は、すべての可能な最後の数字を見つけることのために、N 2を見つけることですnは2 MOD 10はすべてのために0 <= N < 10。各結果は、可能な最後の数字です。Base-mの場合、すべての0 <= n < mに対してn 2 mod mを見つけることができます。
入力Nが与えられると、Base-Nの完全な正方形のすべての可能な最後の数字を出力する(重複なしで)プログラムを作成します。あなたは、想定し得るNがより大きく、0、そのNは、という小さな十分であるN 2がオーバーフロー(あなたがすべての方法をテストすることができない場合はN 2は、私は、あなたのブラウニーポイントの有限量をあげるが、ことを知っていますブラウニーポイントから実際のポイントへの交換レートは1から無限大です)。
テスト:
Input -> Output
1 -> 0
2 -> 0,1
10 -> 0,1,5,6,4,9
16 -> 0,1,4,9
31 -> 0,1,2,4,5,7,8,9,10,14,16,18,19,20,25,28
120 -> 0,1,4,9,16,24,25,36,40,49,60,64,76,81,84,96,100,105
これはcode-golfなので、標準のルールが適用されます!
(これがあまりにも簡単だと思う場合、またはトピックに関するより詳細な質問が必要な場合は、この質問を検討してください:正方形の二次剰余検定の基底の最小カバー)。