ACM竞赛、数论内容常用的定理(求解(a/b)%c,乘法逆元,费马小定理)

如果b与c互素,则(a/b)%c=a*b^(\Phi(c)-1)%c其中\Phi是欧拉函数。或者(a/b)%c=a*b^(c-2)%c

如果b与c不互素,则(a/b)%c=(a%bc)/b

对于b与c互素和不互素都有(a/b)%c=(a%bc)/b成立

乘法逆元用扩展欧几里得定理:

例题:ZOJ - 3609

题干:

The modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1≡x (mod m). This is equivalent to ax≡1 (mod m).

Input

There are multiple test cases. The first line of input is an integer T ≈ 2000 indicating the number of test cases.

Each test case contains two integers 0 < a ≤ 1000 and 0 < m ≤ 1000.

Output

For each test case, output the smallest positive x. If such x doesn't exist, output "Not Exist".

Sample Input

3

3 11

4 12

5 13

Sample Output
4

Not Exist

8

题目大意:如果存在逆元输出逆元,不存在逆元输出Not Exist。

AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;int e_gcd(int a,int b,int &x,int &y) {if(b == 0) {x=1;y=0;return a;}int q=e_gcd(b,a%b,y,x);y-=a/b*x;return q;
}
int main()
{long long t;int x,y,a,b;while(~scanf("%lld",&t) ) {while(t--) {scanf("%d%d",&a,&b);int gcd = e_gcd(a,b,x,y);if(gcd !=1) {puts("Not Exist");continue;	}if(x<=0) x+=b;printf("%d\n",x);	}}return 0 ;
}

 

注意一下是x<=0的时候都不算逆元!!需要x+=b来变成正数!不能是非负数!。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义菜单url不能带_微服务架构【SpringBoot+SpringCloud+VUE】五 || 实战项目微信公众号自定义开发...

本章主要讲解微信公众号自定义菜单、微信网页开发、模板消息推送等功能的实现&#xff1b;发福利了&#xff0c;下方关注公众号&#xff0c;就能免费获取项目源码1、自定义菜单开发前需要了解以下几点&#xff1a;1、微信公众号的自定义菜单最多包括3个一级菜单&#xff0c;每个…

C语言编程中关于负数的%运算的判定。

如果 % 两边的操作数都为正数&#xff0c;则结果为正数或零&#xff1b;如果 % 两边的操作数都是负数&#xff0c;则结果为负数或零。C99 以前&#xff0c;并没有规定如果操作数中有一方为负数&#xff0c;模除的结果会是什么。C99 规定&#xff0c;如果 % 左边的操作数是正数&…

无数种求逆元的方法总结

乘法逆元 对于缩系中的元素&#xff0c;每个数a均有唯一的与之对应的乘法逆元x&#xff0c;使得ax≡1(mod n) 一个数有逆元的充分必要条件是gcd(a,n)1&#xff0c;此时逆元唯一存在 逆元的含义&#xff1a;模n意义下&#xff0c;1个数a如果有逆元x&#xff0c;那么除以a相当于…

python两个元组相加_《第5章 Python 列表与元组》5.1.3 序列相加(Adding)!

《高中信息技术 Python编程》 教学案《第5章 Python 列表与元组》 5.1.3 序列相加(Adding)&#xff01;06:151 #使用加号可以进行序列的连接操作&#xff0c;输入如下&#xff1a;2 >>>[1,2,3][4,5,6]3 [1,2,3,4,5,6]4 >>>a[1,2]5 >>>b[5,6]6 >&…

mysql 按时间查询优化_mysql如何按时间查询优化

mysql按时间查询优化的方法&#xff1a;1、【register_time】字段是datetime类型&#xff0c;转换为日期再匹配&#xff0c;需要查询出所有行进行过滤&#xff1b;2、可以利用在【register_time】字段上建立索引&#xff0c;查询极快。本教程操作环境&#xff1a;windows7系统、…

angularjs 开发流程_超级棒的30款web前端开发工具汇总,一定要收藏!

我们与企业内部的Web开发团队进行了很多次交流&#xff0c;研究了很长时间&#xff0c;最后将Debug工具与Web前端开发工具整理汇总在了一起&#xff0c;这些工具对每个Web开发人员都非常有用。这些工具将使您的工作更加轻松&#xff0c;特别是如果您是Web开发人员&#xff0c;W…

linux mysql io压力大_MySQL 调优基础(四) Linux 磁盘IO_MySQL

1. IO处理过程磁盘IO经常会成为系统的一个瓶颈&#xff0c;特别是对于运行数据库的系统而言。数据从磁盘读取到内存&#xff0c;在到CPU缓存和寄存器&#xff0c;然后进行处理&#xff0c;最后写回磁盘&#xff0c;中间要经过很多的过程&#xff0c;下图是一个以write为例的 Li…

ACM - 欧拉函数(内容)

欧拉函数 &#xff1a; 欧拉函数是数论中很重要的一个函数&#xff0c;欧拉函数是指&#xff1a;对于一个正整数 n &#xff0c;小于 n 且和 n 互质的正整数&#xff08;包括 1&#xff09;的个数&#xff0c;记作 φ(n) 。 完全余数集合&#xff1a; 定义小于 n 且和 n 互质的…

齐博php百度编辑器上传图片_php版百度编辑器ueditor怎样给上传图片自动添加水印?...

百度ueditor是广泛使用的所见即所得图文排版编辑插件&#xff0c;功能比较完善&#xff0c;美中不足就是不支持自动加水印。万维景盛工程师搜集到php版ueditor自动加水印的教程&#xff0c;希望对大家有帮助。1.打开ueditor目录下的php目录下的config.json 文件在上传配置项添加…

mysql dql_Mysql中的DQL查询语句

欢迎进入Linux社区论坛&#xff0c;与200万技术人员互动交流 >>进入 Mysql中的DQL查询语句 1、查询所有列 --查询 学生 表所有记录(行) select *from 学生 --带条件的查询 select *from 学生 where 年龄19 2、查询指定的列 --查询 所有人的姓名和性别 select 姓名,性欢迎…

递归Java_递归的Java实现

递归是一种应用非常广泛的算法(或者编程技巧)。递归求解问题的分解过程&#xff0c;去的过程叫“递”&#xff0c;回来的过程叫“归”。递归需要满足的三个条件&#xff1a;1. 一个问题的解可以分解为几个子问题的解&#xff1b;2. 这个问题与分解之后的子问题&#xff0c;除了…

JAVA线程并发数量控制_线程同步工具(二)控制并发访问多个资源

声明&#xff1a;本文是《 Java 7 Concurrency Cookbook》的第三章&#xff0c; 作者&#xff1a; Javier Fernndez Gonzlez 译者&#xff1a;郑玉婷控制并发访问多个资源在并发访问资源的控制中&#xff0c;你学习了信号量(semaphores)的基本知识。在上个指南&#xff0c;你实…

*【51nod - 1459】迷宫游戏(记录双向权值的Dijkstra单源最短路)

题干&#xff1a; 你来到一个迷宫前。该迷宫由若干个房间组成&#xff0c;每个房间都有一个得分&#xff0c;第一次进入这个房间&#xff0c;你就可以得到这个分数。还有若干双向道路连结这些房间&#xff0c;你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定…

java 强制清除缓存_IDEA强制清除Maven缓存的方法示例

重新导入依赖的常见方式下面图中的刷新按钮&#xff0c;在我的机器上&#xff0c;并不能每次都正确导入pom.xml中写的依赖项&#xff0c;而是导入之前pom.xml的依赖(读了缓存中的pom.xml)。当然除了这些&#xff0c;还可以下面这样&#xff1a;存在的问题上面虽然是重新导入Mav…

ACM算法--spfa算法--最短路算法

求单源最短路的SPFA算法的全称是&#xff1a;Shortest Path Faster Algorithm。 SPFA算法是西南交通大学段凡丁于1994年发表的。 从名字我们就可以看出&#xff0c;这种算法在效率上一定有过人之处。 很多时候&#xff0c;给定的图存在负权边&#xff0c;这时类似…

knn算法python理解与预测_理解KNN算法

KNN主要包括训练过程和分类过程。在训练过程上&#xff0c;需要将训练集存储起来。在分类过程中&#xff0c;将测试集和训练集中的每一张图片去比较&#xff0c;选取差别最小的那张图片。如果数据集多&#xff0c;就把训练集分成两部分&#xff0c;一小部分作为验证集(假的测试…

joptionpane java_Java JOptionPane

Java JOptionPane1 Java JOptionPane的介绍JOptionPane类用于提供标准对话框&#xff0c;例如消息对话框&#xff0c;确认对话框和输入对话框。这些对话框用于显示信息或从用户那里获取输入。JOptionPane类继承了JComponent类。2 Java JOptionPane的声明public class JOptionPa…

java 股票 代码_Java中利用散列表实现股票行情的查询_java

---- 在java中&#xff0c;提供了一个散列表类Hashtable&#xff0c;利用该类&#xff0c;我们可以按照特定的方式来存储数据&#xff0c;从而达到快速检索的目的。本文以查询股票的收盘数据为例&#xff0c;详细地说明java中散列表的使用方法。一、散列表的原理---- 散列表&am…

【HDU - 3714 】Error Curves (三分)

题干&#xff1a; Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a method called Linear Discriminant Analysis, which has many interesting properties. In order to test the algorithms efficiency, she colle…

指数循环节证明

还有关键的一步忘写了phi(m)>r的注意因为ma^r*m‘’所以phi(m)>phi(a^r)>r,所以就相当于phi(m)为循环节&#xff0c;不过如果指数小于phi(m)只能直接算了。。 注意这里的m与a^r是互质的上面忘写了。。 转自https://blog.csdn.net/guoshiyuan484/article/details/787…