1. 问题(来自Rosen的《初等数论及其应用》第6版P99第5题)
证明完全平方数的最后两个十进制数字(个位和十位)一定是下列数对之一:{00, e1, e4, 25, o6, e9}
注:e = even number, o = prime number, 0也为偶数
2. 验证一下
n | n2 | 末尾数对类型 |
0 | 0 | 00 |
1 | 1 | e1 |
2 | 4 | e4 |
3 | 9 | e9 |
4 | 16 | e4 |
5 | 25 | 25 |
6 | 36 | o6 |
7 | 49 | e9 |
8 | 64 | e4 |
9 | 81 | e1 |
3. 证明
3.1 思路
要证明n2的个位和十位的数值,简单的做法是将其表示出来,看是否满足一些规律
n2 = n * n
根据我们计算乘法的方法:
设n = an…a2a1 (an ∈ {0, 1, …, 9})
放在百位以上的数据已经不影响个位和十位了
设f(x) = x的个位和十位的数列
可知n2的十位和个位f(n2) = f(a1a1 + 10*a2a1 + 10*a2a1)
= f(a12 + 10*(2a2a1))
∴n2个位 = a12 的个位,n2的十位 = (2a2a1) + (a12 的十位)
a1 | a12 + 10*(2a2a1) | 2a2(十位) | 末尾数对类型 |
0 | 0 | 0 | 00 |
1 | 10*(0+2a2) + 1 | 2a2 = e | e1 |
2 | 10*(0+4a2) + 4 | 4a2 = e | e4 |
3 | 10*(0+6a2) + 9 | 6a2 = e | e9 |
4 | 10*(1+8a2) + 6 | 1+8a2 = o | e4 |
5 | 10*(2+10a2) + 5 | 2+10a2 = 2 | 25 |
6 | 10*(3+12a2) + 6 | 3+12a2 = o | o6 |
7 | 10*(4+14a2) + 9 | 4+14a2 = e | e9 |
8 | 10*(6+16a2) + 4 | 6+16a2 = e | e4 |
9 | 10*(8+18a2) + 1 | 8+18a2 = e | e1 |
∴对于所有的a1,不论a2的值是什么,f(n2)都成立,得证
4. 推论
根据第3部分的证明,我们还可以知道:
1> 只要n的个位 = 5, 则n2个位和十位 = 25,反之也成立
2> 只要n的个位 = 0, 则n2个位和十位 = 00,反之也成立
3> 只要n的个位 = 6, 则n2个位和十位 = o6,反之也成立
4> 不论a2的值是什么,n2个位和十位数列和a12一样,即n2个位和十位数列类型只和n个位相关
本文为博主原创文章,如需转载请说明转至http://www.cnblogs.com/organic/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库