64位整数乘法

Posted yjz1511

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了64位整数乘法相关的知识,希望对你有一定的参考价值。

求 a 乘 b 对 p 取模的值。

输入格式

第一行输入整数a,第二行输入整数b,第三行输入整数p。

输出格式

输出一个整数,表示a*b mod p的值。

数据范围

1≤a,b,p≤10^18

输入样例:

3
4
5

输出样例:

2
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,p;

ll mul(ll a,ll b,ll p){
	ll ans=0;
	for(;b;b>>=1){
		if(b&1) ans=(ans+a)%p;
		a=a*2%p;
	}
	return ans;
}

int main(){
	scanf("%lld%lld%lld",&a,&b,&p);
	printf("%lld\n",mul(a,b,p));
	
	return 0;
}

  



以上是关于64位整数乘法的主要内容,如果未能解决你的问题,请参考以下文章

64位整数乘法讲解-And-AcWing-90. 64位整数乘法-《算法竞赛进阶指南》

64位整数乘法讲解-And-AcWing-90. 64位整数乘法-方法二-《算法竞赛进阶指南》

ACwing90 64位整数乘法 大数乘法取模

64位整数乘法

[位运算] 64位整数乘法(mod 一个数)

64位整数乘法