快速幂取模

来源:互联网 发布:blct升级数据 编辑:程序博客网 时间:2024/06/05 19:42

非递归法:

#include<cstdio>
#include<iostream>
using namespace std;

int main(){
   int a,b,c,s=1;
   cin>>a>>b>>c;
   a=a%c;
   while(b){
      if(b%2==1) s=s*a%c;
      a=a*a%c;
      b/=2;
 }
   printf("%d\n",s);
   return 0;
}

递归法:

#include<stdio.h>
int ksm(int a,int b,int c){
   int ans=1;
   a=a%c;
   while(b>0){
      if(b%2==1) ans=ans*a%c;
      b/=2;
      a=a*a%c;
 }
   return ans;
}




原创粉丝点击