首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模余数除法

模余数除法
EN

Stack Overflow用户
提问于 2014-04-16 04:39:52
回答 1查看 100关注 0票数 0

你怎么能用模余数除法?

例如:当9^2012除以11时,查找剩余部分。

采用模块化算法,9 == 1(mod 4),so 9^2012 == 1^2012(mod 4)。因此,9^2012 == 1(mod 4)。11 == 3(mod 4)。为了回答这个问题,我尝试做1(mod 4)/3(mod 4)。有办法这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 05:06:38

有两个重要的理论可以帮助你解决这个问题:-

  1. 模指数
  2. 费马小定理

模幂:-这个简单的递归公式让你明白:-

代码语言:javascript
复制
(a^n)%p = ((a^(n-1))%p*a)%p

上面的公式可以帮助您防止在^n很大时发生的溢出。此外,还可以使用O(logn)进行快速指数运算。

费马的小定理:-如果p是素数在你的例子中11是素数,那么对于对p是次素数的任意a,(a^(p-1))%p = 1(a^n)%p = (a^(n%(p-1)))%p

您的示例:-

代码语言:javascript
复制
9^2012 % 11 = ?

11 is prime and 9 is co-prime to 11 then using fermat's theorem

9^2012 % 11 = (9^(2012%10)) % 11
2012%10 = 2

9^2012 % 11 = 9^2 % 11 = 4  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23100114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档