欧拉函数求一个数倒数的循环节长度

来源:互联网 发布:犀牛软件安装教程 编辑:程序博客网 时间:2024/06/07 01:46
首先,费马小定理a与p互素,则a^(p-1)≡1(mod p) 
对于一个素数p,取a=10,那么10^(p-1)≡1(mod p) 
如果找到一个正整数e使得10^e/p-1/p为整数,那么e就是1/p的循环节(但不一定是最小的那个),由费马小定理知,在不大于p-1的正整数中,e是存在的!
这还意味着,1/p的第一个循环节正好就在小数点后面,是个纯循环小数.
p-1是个和数所以10^(p-1)-1可以进行因式分解分解成为(10^p1-1)(10^(p-1-p1)+.+1)具体就不写了,其中p1为p-1的因数,如果有一个比p-1小的e满足“10^e/p-1/p为整数”那么这个e一定是p的约数.
(重要)Δ引理:一个循环小数除以2,其循环节大小不变 
证明:
1.每个循环节如果是偶数,显然不变 
2.如果是奇数,可以将本循环节最后的那个奇数码拿出一个1给后一个循环节,这样新循环节就又是偶数了,不过这个循环节是有重合的,比如0.45454545...就变成0.44+0.0144+0.00144...前面虽然多了些不是循环节的部分,不过循环节部分为数不受影响.
2008=2*2*2*251,251是素数,这样,我们只要求得1/251的循环节长度就好(除以2三次就是1/2008) 
根据最上面的那部分10^250≡1(mod 251),如果有更小的e满足10^e≡1(mod 251),那么e是250的约数,250的约数有2,5,10,25,50,250 
还有,同余式可以乘的,就是如果a≡c(mod m),b≡d(mod m) 则ab≡cd(mod m) 
10^3≡-4(mod 251) 所以 
10^5≡-400≡102(mod 251) 10^5不满足要求 
10^10≡10404≡113(mod 251) 10^10不满足要求 
10^20≡12769≡-32(mod 251) 10^20不满足要求 
10^25≡-3264≡-1(mod 251) 10^25不满足要求 
10^50≡1(mod 251) 10^50满足要求 
所以循环节的长度就是50
2008=2^3×251
φ(251)=250

250的正因数有1、2,5、10、25、50、125、250,x取上述正因数并且满足10^x≡1 (mod 251)的最小的x是50,所以1/2008的循环节长度是50.没有分,也勉为其难了,

如果上面没看懂的话看证明文件点击打开链接

0 0
原创粉丝点击