求13050000的1757316971次幂mol5515596313
一个是用函数算,一个是直接算,但是结果不一样,请问一下这是为什么啊
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int Encrypt(unsigned long long a,unsigned long long m,unsigned long long n)//求a的m次幂mol n
{
unsigned long long i,d=1;
for(i=0;i<m;i++)
{
d=d*a%n;
}
return d;
}
int main()
{
unsigned long long f;
f=Encrypt(13050000,1757316971,5515596313);
cout<<f<<endl;
unsigned long long i,d=1;
for(i=0;i<1757316971;i++)
{
d=d*13050000%5515596313;
}
cout<<d;
}
把函数的返回值改为unsigned long long类型啊,int型肯定不够大啊