其实是做题做崩了
循环小数
- 巧妙数论题
- 设循环节长度为 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那么小数没有循环节(换句话说是无理数