64位整数乘法

Posted valentino

tags:

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

传送门

描述

求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。

输入格式

第一行a,第二行b,第三行p。

输出格式

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

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a,b,p;
ll f(ll a,ll b,ll p)

    ll ans=0;
    while(b)
    
        if(b&1) ans=(ans+a)%p;
        a=a*2%p;
        b>>=1;
    
    return ans;

int main()

    scanf("%lld%lld%lld",&a,&b,&p);
    printf("%lld\\n",f(a,b,p));
    return 0;

 

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

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

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

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

64位整数乘法

64位整数乘法

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