【学习笔记】数论思维题

其实是做题做崩了

循环小数

在这里插入图片描述

  • 巧妙数论题
  • 设循环节长度为 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+c10c
  • 写成同余形式 1 0 l + c ≡ 1 0 c ( m o d b ) 10^{l+c}\equiv 10^c\pmod b 10l+c10c(modb)
  • 如果 ( 10 , b ) = 1 (10,b)=1 (10,b)=1
  • 那么 1 0 l ≡ 1 ( m o d b ) 10^l\equiv 1\pmod b 10l1(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)}} 10l1(modgcd(b,10c)b)
  • 注意到不互质的两个数是没有阶的
  • 证明:假设 a b ≡ 1 ( m o d m ) a^b\equiv 1\pmod m ab1(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 ab1(modd)
  • 因为 a ∣ d a|d ad,所以左边同余 0 0 0,显然不成立
  • 所以 1 0 l ≡ 1 ( m o d b ′ ) 10^l\equiv 1\pmod {b'} 10l1(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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   仰望星空的蚂蚁  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示