childhood cat 2021-10-07 18:15 采纳率: 40%
浏览 25
已结题

求大整数求幂取模问题

求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;
}

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-07 18:53
    关注

    把函数的返回值改为unsigned long long类型啊,int型肯定不够大啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 创建了问题 10月7日