1200 同余方程

2012年NOIP全国联赛提高组

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond

题解
 查看运行结果

题目描述 Description

求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解。

输入描述 Input Description

输入只有一行,包含两个正整数 a, b,用 一个 空格隔开。

输出描述 Output Description

输出只有一行包含一个正整数x0,即最小正整数解,输入数据保证一定有解。

样例输入 Sample Input

3 10

样例输出 Sample Output

7

数据范围及提示 Data Size & Hint

【数据范围】
对于 40%  的数据, 2 ≤b≤ 1,000 ;
对于 60% 的数据, 2 ≤b≤ 50,000,000 
对于 100%  的数据, 2 ≤a, b≤ 2,000,000,000

分类标签 Tags

欧几里德定理 数论 大陆地区 NOIP全国联赛提高组 2012年

代码

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long a,b,x,y;
long long exgcd(long long a,long long b,long long x,long long y)
{if(b==0){x=1,y=0;return a;}else{int r=exgcd(b,a%b,x,y),tmp;tmp=x,x=y,y=tmp-a/b*y;return r;}
}
int main()
{cin>>a>>b;int s=exgcd(a,b,x,y);while(x<0)x+=(b/s);cout<<x;return 0;
}

转载于:https://www.cnblogs.com/z360/p/6670376.html

同余方程———扩展欧几里得相关推荐

  1. 求解线性同余方程--扩展欧几里得

    资料来源:https://blog.csdn.net/ //求解ax=b(mod m) 返回0为无解,否则返回gcd(a,m)个mod m意义下的解,用X[]存 int mod(int a, int ...

  2. luogu1082 [NOIp2012]同余方程 (扩展欧几里得)

    由于保证有解,所以1%gcd(x,y)=0,所以gcd(x,y)=1,直接做就行了 1 #include<bits/stdc++.h> 2 #define pa pair<int,i ...

  3. 专题·扩展欧几里得定理【including 求解二元一次方程,线性同余方程

    初见安~这里是基础数论专题(3)~[详见数论专栏] p.s:本文章假设你已经掌握了欧几里得算法--辗转相除法求最大公约数(gcd) 一.二元一次方程 形如的含有两个未知数且最高次数为1的方程我们称之为 ...

  4. [模板]欧几里得算法/扩展欧几里得

    最大公因数(欧几里得算法) $gcd(a,b)=gcd(b\%a,a)$(不一定需要a<b) $gcd(0,b)=b$ 1 inline int gcd(int a,int b){ 2 retu ...

  5. 欧几里得 扩展欧几里得

    欧几里得  &  扩展欧几里得 时间复杂度T(n):O(log2n); 空间复杂度S(n):O(n); Advantages: 1.    时间复杂度不高,和普通欧几里得一样: 2.    代 ...

  6. 扩展欧几里得的几个定理以及证明

    扩展欧几里得的三个定理: 定理一:如果d = gcd(a, b),则必能找到正的或负的整数k和l,使d = a*x+ b*y. 定理二:若gcd(a, b) = 1,则方程ax ≡ c (mod b) ...

  7. 扩展欧几里得及其应用

    欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数.其计算原理依赖于下面的定理:gcd(a,b)=gcd(a,a mod b) gcd函数就是用来求(a,b)的最大公约数的. ...

  8. 欧几里得、扩展欧几里得、同余

    一.同余: 1.若整数a和整数b除以正整数m的余数相等,则称a,b模m同余,记作a≡b(mod m). 2.费马小定理:若p是质数,则对于任意整数a,有ap ≡a(mod p). 3.欧拉定理:若正整 ...

  9. 欧几里得,扩展欧几里得,孙子定理

    欧几里得 这人是真的厉害! 辗转相除法 #include <iostream> #include <cstring> #include <algorithm>usi ...

最新文章

  1. gitlab的升级【二】旧数据的备份和新数据的恢复
  2. 大端 小端 原码 反码 补码 及内存中的表现
  3. VC++ 读取和保存文件对话框及默认目录
  4. 数字图像处理 第一章 概述
  5. zookeeper和k8s_学习 ZooKeeper(二): ZooKeeper on Kubernetes
  6. redis 过期删除策略和淘汰策略 -redis设计与实现笔记
  7. 基于QT实现的数独游戏DPLL的SAT求解器设计
  8. matlab中如何设置曲线图,(excel表格制图表)如何将excel表中数据做出曲线图
  9. ebay获取商品详情 API接口
  10. vue elementui 将data中数据恢复到初始化状态
  11. QT--警告libpng warning: iCCP: known incorrect sRGB profile
  12. 物研究所做一位科研人员
  13. 985本科生歧视北大博导“第一学历”,“无法相信北大会有这么差的师资”
  14. 【整理】SIMD、MMX、SSE、AVX、3D Now!、neon——指令集大全
  15. 2021ICPC沈阳区域赛BEFIJM
  16. F - 恐怖分子 CodeForces - 514B
  17. linux的centos7怎么分区,CentOS linux7 磁盘分区
  18. 海思3556V200 PQTools 工具环境搭建
  19. 工时管理:按工作时间还是完成的任务来跟踪员工的生产力?
  20. 为什么用手机USB共享网络,WIN10就变得异常卡顿?

热门文章

  1. 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014
  2. 用Python和OpenCV创建一个图片搜索引擎的完整指南
  3. 开发 Eclipse 插件
  4. 二叉树的先序/中序/后序/层次遍历
  5. 【算法+OpenCV】图像极坐标变换及基于OpenCV的实现
  6. 微信小程序中的渐变色
  7. 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具
  8. Raspberry Pi 软件源
  9. MapReduce之单词计数
  10. Linux下如何进行FTP设置