c++的一个程序,叫64位整数乘法,a×bmodp这是什么意思
发布时间:2019-02-22 19:16
你的题目中有一些重复的内容。
求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);
}
此程序的运行结果正如样例所示: