c++的一个程序,叫64位整数乘法,a×bmodp这是什么意思

2019-02-22 19:16发布

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
农夫力强
2019-02-22 20:22

你的题目中有一些重复的内容。
求a×b mod p 的意思是:求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。
注意,下面给出程序是在VC++6.0中通过:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
   _int64 a,b,p,c,ans;
   scanf("%I64d%I64d%I64d",&a,&b,&p);
   a%=p;b%=p;
   c=a*b/p;
   ans=a*b-c*p;
if (ans<0) ans+=p;
   else if (ans>=p) ans-=p;
   printf("%I64d\n",ans);
}

此程序的运行结果正如样例所示:


一周热门 更多>