WOJ-315-高级机密

主要参考了这篇文章:快速幂 蒙格马利算法

蒙哥马利(Montgomery)幂模运算是快速计算a^b%k的一种算法,是RSA加密算法的核心之一。

代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int a,b,c;
    cin>>a>>b>>c;
    while(a!=0||b!=0||c!=0){
        int k=1,m=a%c;
        while(b>1){
            if(b&1!=0) //如果指数是奇数,则分治之后多出来一个
            {
               k=(k*m)%c;
            }
            m=(m*m)%c;
            b/=2;
        }
        cout<<(k*m)%c<<endl;
        cin>>a>>b>>c;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容