64位整数乘法

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
using namespace std;
///计算(x*y)mod z 的值
long long mul(long long x,long long y,long z)
{
    long long ans=0;
    while(y){
        if(y&1){
            ans=(ans+x)%z;
        }
        x=(x*2)%z;
        y>>=1;
    }
    return ans;

}
int main()
{
    long long a,b,p;
    while(scanf("%lld%lld%lld",&a,&b,&p)!=EOF){
        printf("%lld\n",mul(a,b,p));
    }

    return 0;
}

 

    原文作者:大整数乘法问题
    原文地址: https://blog.csdn.net/qq_40259739/article/details/81153035
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞