64位整数乘法 a*b%p

方法一:思想同二进制快速幂,将b按二进制分解

ll mul(ll a,ll b,ll p) //return a*b mod p
{ll ans=0;while(b){if(b&1)ans+=a,ans%=p;a*=2;a%=p;b>>=1;}return ans;
}
int main()
{ll a,b,p;std::cin>>a>>b>>p;std::cout<<mul(a,b,p)<<'\n';return 0;
}

方法二:利用 ab%p=ab-floor(a*b/p)*p //其中floor(a)表示a向下取整

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G1JETDI1-1618226642575)(C:\Users\pengxin\AppData\Roaming\Typora\typora-user-images\image-20210327114803414.png)]


ll mul(ll a,ll b,ll p)
{a%=p,b%=p;ll c=(long double)a*b/p;ll ans=a*b-c*p;if(ans<0)ans+=p;else if(ans>p)ans%=p;return ans;
}
int main()
{ll a,b,p;std::cin>>a>>b>>p;std::cout<<mul(a,b,p)<<'\n';return 0;
}

out<<mul(a,b,p)<<’\n’;
return 0;
}


64位整数乘法 ab%p相关推荐

  1. 《算法竞赛进阶指南》打卡-基本算法-AcWing 90. 64位整数乘法:位运算

    文章目录 题目解答 题目链接 题目解答 分析: 位运算,快速幂的思想 /* a * b a + a + a + a + a ... + a 共b个aa * 1 = a a * 2 = 2a a * 4 ...

  2. 64位整数乘法(类快速幂)

    题目链接 AcWing 90. 代码 #include <bits/stdc++.h>using namespace std;typedef long long ll;ll quick_m ...

  3. 再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类

    上次我对C#类与结构体做了一次速度评测(http://blog.csdn.net/zyl910/article/details/6788417).经过一段时间思索,发现还可以进一步探讨-- 第一.栈变 ...

  4. boost::sort模块实现spreadsort 64 位整数排序示例

    boost::sort模块实现spreadsort 64 位整数排序示例 实现功能 C++实现代码 实现功能 boost::sort模块实现spreadsort 64 位整数排序示例 C++实现代码 ...

  5. printf的两个需要注意的问题:无符号整数和64位整数

    From: http://www.cnblogs.com/lidp/articles/1696079.html 1) %d和%u的区别 unsigned int dwValue; printf(&qu ...

  6. php 64位整数,32位和64位PHP和MySQL里的整型范围

    一个字节有8位,所以32位int型占用32位/8位=4个字节,64位int型占用64位/8位=8个字节. 32位,64位无符号整型最大值: 2^64-1 = 18446744073709551615 ...

  7. python字符串转64位数字_python-将String转换为64位整数映射字符以自定义两位值映射...

    您将4个不同"数字"的字符串解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个整数. def seq_to_int(seq, _m ...

  8. python数字转字符串固定位数_python-将String转换为64位整数映射字符以自定...

    您将4个不同"数字"的字符串解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个整数. def seq_to_int(seq, _m ...

  9. 64位计算机int类型字长,64位整数问题

    题目描述 输入正整数n,统计它的正因子个数,n<= 10^(12),例如n=30时,输出应该为8. 源码#include #include int main () { int64_t a; in ...

最新文章

  1. 【转】.NET正则基础之——正则委托
  2. Servlet与线程安全
  3. 'unsigned char'-C编程中的声明,赋值和用法
  4. 天池 在线编程 数组游戏
  5. 为什么编程语言要从c语言学起,在那么多编程语言中,为什么推荐初学者学 C 语言?...
  6. 【网络流24题】[CTSC1999]家园
  7. 黑色沙漠单机一键端服务器维护,《黑色沙漠》网游单机版一键服务端
  8. 渗透测试专题之实战技巧总结
  9. Atitit 软件设计中的各种图纸 uml 之道 1. 常见设计成果与图纸 2 1.1. 总图 2 1.2. ui原型图与html 2 1.3. 业务逻辑 伪代码 各种uml图 2 1.4. 总体
  10. 捷顺USB-RS485驱动
  11. 编织机上下料西门子S71200PLC和KTP700触摸屏程序博途
  12. 软件开发模式:瀑布与敏捷应用思考
  13. 2019年高二上期末成都市调研考试总结暨寒假规划
  14. linux中合并多个文件到一个文件中
  15. 论文阅读 2017 —— Sensor Fusion for Fiducial Tags: Highly Robust Pose Estimation from Single Frame RGBD
  16. 了解公司企业:Primetics
  17. 错误解决:IllegalArgumentException occurred calling getter of *
  18. 老铁们,Arxiv每日论文服务美美上线啦
  19. Chaos Mesh Test(在k8s对mysql,redis zookeeper 进行chaos 测试)
  20. 深度解读:小红书热搜词底层逻辑,助力小红书笔记上热门

热门文章

  1. 9.5、Libgdx加速度计
  2. 高仿人人网客户端Android版项目源码
  3. Java的API文档使用方法和目录总结
  4. 用计算机0和1表达难舍之情,表达对友人的难舍和思念之情的诗句.
  5. 连续相乘计算机公式,Excel中如何批量算乘法?一个公式即可搞定所有乘法!
  6. 凉拌菜谱家常菜做法-拌胡萝卜丝
  7. security用法
  8. 自己动手写编译器:汤普森构造法
  9. 源码分析学习记录(12)——自动UV展开
  10. 案件缺席?跨境电商平台遭遇TRO账户冻结,什么时候会被判缺席?