24pts求助
查看原帖
24pts求助
1054686
XuOuXiao1024楼主2024/3/26 14:00
#include<bits/stdc++.h>
using namespace std;
const int BUFSIZE=1<<20;
char ibuf[BUFSIZE],*is=ibuf,*it=ibuf;
char getc(){
    if(is==it)
        it=(is=ibuf)+fread(ibuf,1,BUFSIZE,stdin);
    return is==it?EOF:*is++;
}
int reads(){
	int ret=0;
	bool sign=0;
	char ch=getc();
	while(!isdigit(ch)){
		sign|=ch=='-';
		ch=getc();
	}
	while(isdigit(ch)){
		ret=ret*10+ch-'0';
		ch=getc();
	}
	return sign?-ret:ret;
}
int a,b,p; 
int pow(int a,int b){
	if(b==1) return a%p;
	if(b==2) return a*a%p;
	int ans=pow(a,2);
	if(b&1) return pow(ans,b/2)*a;
	else return pow(ans,b/2);
}
int main(){
	a=reads(),b=reads(),p=reads();
	int ans=pow(a,b);
	printf("%d^%d mod %d=%d",a,b,p,ans%p);
}

2024/3/26 14:00
加载中...