首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

请教给定一个大整数(如10^300数量级),可否快速求其倒数的循环节长度

2012-03-09 
请问给定一个大整数(如10^300数量级),可否快速求其倒数的循环节长度?对一个大整数求倒数,用牛顿法可以快速

请问给定一个大整数(如10^300数量级),可否快速求其倒数的循环节长度?
对一个大整数求倒数,用牛顿法可以快速达到很高的精度,但需要的空间很大,如果求一个10^300数量级的质数p的倒数,其循环节长度有可能达到p-1,没有一台计算机的内存能够储存整个循环节的数据,如果用普通的除法,只需储存余数,占用的内存不大,可却可能要计算p-1次,不可能算完,请问有什么好的方法解决这个问题吗?只要有循环节的长度就可以,不用输出循环节的内容
这个问题的另一种描述:给定大整数n(可能是质数也可能是合数,且不知道这个数的分解形式),求最小的k使10^k   ≡1   (mod   n)
如果把10改成2,有什么好的算法吗?
期待高手赐教,不胜感激!
本人第一次提问,囊中羞涩只有100分,希望大家不要见怪.参与讨论者有分

[解决办法]
如果n是难分解的大整数,那么a=2又能带来什么便利呢?

[解决办法]
我的意思是:对于"a为与n互素的任意数",我给的方法是通用的.但是,对于特殊的a,可能存在比"通过求ψ(n),逐个试验"更好的算法.

热点排行