64位整数乘法(c语言)——大数取余

导读:本篇文章讲解 64位整数乘法(c语言)——大数取余,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

64位整数乘法

时间限制: 1 Sec  内存限制: 128 MB

题目描述:

求a乘b对p取模的值,其中1≤a,b,p≤1018

输入:

输入3个long long型整数,a,b,p

输出:

输出a*b%p的值

样例输入:

250182048980811753
413715569939057660
133223633696258584

样例输出

19308689043391716

已AC代码:

#include<stdio.h>

int main(){
    long long a,b,c;
    long long res=0;
    scanf("%lld%lld%lld",&a,&b,&c);
    while(b){
        if(b&1){
            res = (res+a)%c;
        }
        b>>=1;
        a = a*2%c;
    }
    printf("%lld",res);
    return 0;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/103353.html

(0)

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!