WOJ-315-高级机密

2020-01-18  本文已影响0人  iDucky131

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

蒙哥马利(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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读