在BASE-10,所有的完全平方结束0,1,4,5,6,或9。
在基地-16,所有完全平方结束0,1,4,或9。
Nilknarf在这个答案中描述了这是为什么以及如何很好地解决这个问题,但是我还将在这里给出简短的描述:
当对以10为底的数字N进行平方运算时,“个”数字不受“十”个数字或“百”个数字等的影响。只有N中的“一位”数字会影响N 2中的“一位”数字,因此找到N 2的所有可能最后数字的一种简便(但可能不是最高尔夫)方法是为所有0 <= n找到n 2 mod 10 < 10。每个结果都是可能的最后一位数字。对于Base-m,您可以找到对于所有0 <= n < m n 2 mod m。
编写一个程序,当输入为N时,输出以Base-N为单位的理想平方的所有可能的最后一位数字(无重复)。您可能会假设N大于0,并且N足够小以至于N 2不会溢出(如果可以一直测试到N 2,我会给您有限的布朗尼点,但您知道布朗尼点对实际点的汇率是无穷大)。
测试:
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
这是代码高尔夫球,因此适用标准规则!
(如果您觉得这太容易了,或者您希望在这个主题上有一个更深入的问题,请考虑以下问题:二次方残基测试的最小基数覆盖率)。