首页 > 编程语言 >同余方程(扩展欧几里得)(C/C++)

同余方程(扩展欧几里得)(C/C++)

时间:2023-11-04 18:35:34浏览次数:43  
标签:return int 欧几里得 namespace exgcd C++ include 边界值 同余

同余方程(扩展欧几里得)(C/C++)_ios

ax%b=1,则a和b的最大公约数一定是1。

同余方程(扩展欧几里得)(C/C++)_ios_02

同余方程(扩展欧几里得)(C/C++)_递归_03

#include <cstdio>
#include <iostream>
using namespace std;
int a,q;
int x,y;
void exgcd(int a,int b)
{
	if (b==0)
	{
		x=1;
		y=0;
		return ;  //得到gcd(b,0)时到达边界值
	}  //
	else
	{
		exgcd(b,a%b);
		int k=x;
		x=y;
		y=k-(a/b)*y;  //根据上方推出的公式进行递归求出结果
	}
	return ;
}
int main()
{
	scanf("%d%d",&a,&q);  
	exgcd(a,q);
	printf("%lld",(x+q)%q);
	return 0;
}

标签:return,int,欧几里得,namespace,exgcd,C++,include,边界值,同余
From: https://blog.51cto.com/u_16342340/8184416

相关文章

  • 对于扩展欧几里得算法的小总结
    对于不定方程\(ax+by=c\)有正数解的充分必要条件是\(c|gcd(a,b)\),证明请看裴蜀定理那么显然的,我们只要能解出方程\(ax+by=gcd(a,b)\)然后把解\(\times\frac{c}{gcd(a,b)}\)即可如何解这个新的方程呢?我们知道\(gcd(a,b)\),并且它等于\(gcd(b,a%b)\),也就是说,方程\(bx+(a%b)y=gcd......
  • 【UEC++游戏案例】向上的小松饼
    一.效果与资源准备1.1游戏演示效果效果:00-课程演示_哔哩哔哩_bilibili  1.2游戏资产素材与源码素材与源码:提示信息-SiKi学院|SiKi学堂-unity|u3d|虚幻|ue4/5|java|python|人工智能|视频教程|在线课程  1.3前期准备创建无初学者内容的空项目将素材文......
  • C/C++连接mysql(api接口方法详解)
      前言本篇记录C/C++连接mysql利用mysql的api接口的方法:这个方法的代码基本上很久都没有变过了,这里做个笔记来简单学习一下,还有一种方法等有时间了解后再来更新使用API的方式连接,需要先做环境配置,加载mysql的头文件和lib文件。可以看我之前的一篇文章VS中C/C++访问MySQL数据......
  • 图解C/C++灵魂:指针变量
    1、指针变量的基本操作基本操作inta,*iptr,*jptr,*kptr;iptr=&a;jptr=iptr;*jptr=100;kptr=NULL;图解:1.1己址和己空间指针变量也是一个变量,对应一块内存空间,对应一个内存地址,指针名就是己址。这空内存空间多大?一个机器字长(machineword),32位的......
  • 求两个数的最大公约数的欧几里得算法
    上网查找什么是求两个数的最大公约数的欧几里得算法(辗转相除法),提交算法说明和网上链接。算法说明:1.两个正整数中,用大数除以小数求余2.再用其中的大数除以其中的小数求余,重复步骤直至余数为03.当余数为0时,取当前算式除数为最大公约数链接:欧几里得算法(辗转相除法)求最大公约......
  • 扩展欧几里得算法模板
    扩展欧几里得算法问题:给定两个非零整数$a$和$b$,求一组整数解$(x,y)$,使得$ax+by=gcd(a,b)$成立($gcd(a,b)$是a、b的最大公约数)。设$$\begin{aligned}ax_1+by_1&=gcd(a,b)\bx_2+(a%b)y_2&=gcd(b,a%b)\end{aligned}$$化简,得递推公式:$$\begin{aligned}&x_1=y_2\&y......
  • 与c++比较学习rust3-1:变量和可变性
    rust文章:变量和可变性let,const这两个在c++中,没有与let相同的用法,letlet有点像constauto1.1.相同点:不需要指定类型。使用了constauto之后,不能改变值也不能改变类型。1.2.不同点:rust合法,c++中不合法(即c++中,不能重复定义一个变量)leta=2;leta=4;le......
  • 【每日例题】蓝桥杯 c++ 串的处理
    串的处理题目题目描述在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1.把每个单词的首字母变为大写。 2.把数字与字母之间用下划线字符(_)分开,使得更清晰3.把单词中间有多个空格的调整为1个空格。输入描......
  • 【每日例题】蓝桥杯 c++ 最大降雨量
    最大降雨量题目本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。这个法术需要用到他手中的49张法术符,上面分别写着1至49这49个数字。法术—共持续7周,每天小明都要使用—张法术符,法术符不能......
  • 【每日例题】蓝桥杯 c++ 最小的或运算
    最小的或运算题目问题描述给定整数a,b,求最小的整数工,满足a|a=ba,其中|表示或运算。输入格式第—行包含2个正整数a,b.输出格式输出共1行,包含1个整数,表示最终答案。样例输入样例输出评测数据规模对于所有测评数据,0<a,b<264.最小的或运算思路分析1.要求最小的x满足a|x=b|x,......