题目

P2613 【模板】有理数取余

解析

简单的数论题

发现并没有对小数取余这一说,所以我们把原式化一下,

\[(c=\frac{a}{b})\equiv a\times b^{-1}(mod\ p)
\]

因为\(p\)是质数,所以我们根据费马小定理\(b^{p-1}\equiv 1(mod p)\),

有\(a\times b^{-1}\times 1 \equiv c(mod\ p)\),

\(=>a\times b^{-1}\times b^{p-1} \equiv c(mod\ p)\)

\(=>a\times b^{p-2} \equiv c(mod\ p)\)

于是我们求\(a\times b^{p-2}(mod\ p)\)就好了,注意\(b=0\)时无解。

输入的话根据同余的同加性和同乘性,在读入优化里加一个取余就好了

代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 19260817;
int a, b; inline int read() {
int x = 0, f = 0; char ch = getchar();
while (!isdigit(ch)) f |= (ch == '-'), ch = getchar();
while (isdigit(ch)) x = (x * 10 + ch - '0') % mod, ch = getchar();
return f ? -x : x;
} int qpow(int a, int b) {
int ans = 1;
while (b) {
if (b & 1) ans = (ans * a) % mod;
a = (a * a) % mod, b >>= 1;
}
return ans;
} main() {
a = read(), b = read();
if (b == 0) {
printf("Angry!");
return 0;
}
cout << (qpow(b, mod - 2) * a % mod + mod) % mod;
}

最新文章

  1. JS数组添加字典的方法
  2. MyEclipse10连接数据库
  3. jQuery对Table一个字段排序
  4. OmniThreadLibrary 3.03b发布了
  5. 手动内存管理与ARC互相转换问题2
  6. WPS目录制作方法
  7. 批量导入图片到word并添加文件名
  8. tcpdump抓包以及port查看的一些操作
  9. UITableViewCell实现3D缩放动画
  10. 函数(jquery)
  11. Unity3D Android手机开发环境配置
  12. c# md5
  13. Python基础篇(六)
  14. php 下载保存文件保存到本地的两种实现方法
  15. index() checkbox单选问题
  16. 加密webconfig中的连接字符串,利用RSA非对称加密,利用windows保存密钥容器
  17. canvas图片上传相关学习
  18. csp20170304地铁修建_Solution
  19. python中复数的几件事儿
  20. enum-枚举当做key-value业务使用

热门文章

  1. .Net Core NOPI操作word(二) 表格操作
  2. Armbian编译以及定制
  3. PHP 简易网页访问统计
  4. 解决Invalid Plugin needs a valid package.json
  5. linux 结束某个进程,并且结束子进程
  6. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之点播分享
  7. [ ceph ] 基本介绍及硬件配置
  8. 浅谈 Docker 安全合规建设
  9. 实现简单的string类
  10. ThreadLocal源代码3