【学习笔记】数论思维题
其实是做题做崩了
循环小数
- 巧妙数论题
- 设循环节长度为 l l l,不循环部分长为 c c c
- 因为 b b b是约分后的结果
- 所以有 b ∣ 1 0 l + c − 1 0 c b|10^{l+c}-10^c b∣10l+c−10c
- 写成同余形式 1 0 l + c ≡ 1 0 c ( m o d b ) 10^{l+c}\equiv 10^c\pmod b 10l+c≡10c(modb)
- 如果 ( 10 , b ) = 1 (10,b)=1 (10,b)=1
- 那么 1 0 l ≡ 1 ( m o d b ) 10^l\equiv 1\pmod b 10l≡1(modb)
- 那么 l = o r d b ( 10 ) l=ord_b(10) l=ordb(10)
- 并且小数没有不循环部分
- 如果 ( 10 , b ) ≠ 1 (10,b)\ne 1 (10,b)=1
- 设 b = 2 k 2 5 k 5 b ′ b=2^{k_2}5^{k_5}b' b=2k25k5b′
- 那么 1 0 l ≡ 1 ( m o d b gcd ( b , 1 0 c ) ) 10^l\equiv 1\pmod {\frac{b}{\gcd(b,10^c)}} 10l≡1(modgcd(b,10c)b)
- 注意到不互质的两个数是没有阶的
- 证明:假设 a b ≡ 1 ( m o d m ) a^b\equiv 1\pmod m ab≡1(modm),设 d = gcd ( a , m ) d=\gcd(a,m) d=gcd(a,m)
- 那么 a b ≡ 1 ( m o d d ) a^b\equiv 1\pmod d ab≡1(modd)
- 因为 a ∣ d a|d a∣d,所以左边同余 0 0 0,显然不成立
- 所以 1 0 l ≡ 1 ( m o d b ′ ) 10^l\equiv 1\pmod {b'} 10l≡1(modb′)
- 那么 l = o r d b ′ ( 10 ) l=ord_{b'}(10) l=ordb′(10)
- 显然不循环部分 c = max ( k 2 , k 5 ) c=\max(k_2,k_5) c=max(k2,k5)
- 当然,如果 b ′ = 1 b'=1 b′=1那么小数没有循环节(换句话说是无理数
__EOF__

本文作者:仰望星空的蚂蚁
本文链接:https://www.cnblogs.com/cqbzly/p/17530121.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/cqbzly/p/17530121.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」