辗转相除法详解(C语言实现)

2023-05-16

辗转相除法

  • 定义
  • 基本原理
    • 原理
    • 证明
  • 算法实现
    • 思想
    • C语言实现

定义

辗转相除法,被称为欧几里得(Euclidean)算法,是求最大公约数的算法。

基本原理

原理

两个正整数a和b(a > b),他们的最大公约数等于a除以b的余数和b之间的最大公约数。

证明

设 b = aq + r, (a,b) 为a, b的最大公约数
则a % (a,b) = 0; b % (a,b) = 0,
因为(a和b的约束) % (a,b) = 0,
所以 (b - aq) % (a,b) = 0
即 r % (a,b) = 0
因为a % (a,b) = 0, r % (a,b) = 0
所以(a,r) % (a,b) = 0(最大公约数一定被公约数整除)

又因为a % (a,r) = 0, r % (a,r) = 0, b = aq+r
所以 (aq + r) % (a,r) = 0
即 b % (a,r) = 0
因为 a % (a,r) = 0
b % (a,r) = 0
所以
(a,b) % (a,r) = 0
所以
(a,b) = (a,r)

算法实现

思想

a = b * q1 + r1
b = r1 * q2 + r2
r1 = r2*q3 + r3

rn-2 = rn-1 * qn + rn

rn-1 = 0, rn-2 即为最大公约数(
因为rn-2和0的最大公约数就是他本身rn-2,
又因为rn-2和0的最大公约数等于a和b的最大公约数,
所以rn-2即为a和b的最大公约数。

C语言实现

#include <stdio.h>
int main()
{
	int a;
	int b;
	scanf("%d %d", &a, &b);
	int u, v;
	u = a, v = b;		
	while (v != 0)
	{
		int tmp1 = u % v;
		u = v;
		v = tmp1;
	}
	printf("%d\n", u);
	return 0;
}		
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

辗转相除法详解(C语言实现) 的相关文章

  • MergeSort(迭代归并排序)——C语言实现

    前言 xff1a 归并排序跟快速排序有异曲同工之妙 xff0c 都是分治法的典型代表 但是这种分治法都有不小的弊端 xff0c 就是需要占用大量的系统栈 xff0c 很容易造成空间的大量浪费 xff0c 所以就有用迭代来优化递归的操作 这次
  • R语言实战——主成分分析理论推导与R语言实现

    目录 1 总体主成分1 1 主成分的定义与导出1 2 主成分的性质1 3 从相关矩阵出发求主成分 2 样本主成分2 1 从S出发求主成分2 2 从R出发求主成分 3 相关的R函数以及实例3 1 96 princomp 96 函数3 2 96
  • (c语言实现)数据结构链表oj题(2)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f C语言进阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 分析力扣中有关链表的部分题目 目
  • 用c语言实现 将src指向的字符串追加到dest指向字符串的后面

    实现char my strcat char dest char src 函数 返回 xff1a dest字符串的地址 功能 xff1a 将src指向的字符串追加到dest指向字符串的后面 例如 xff1a char dest 10 61 3
  • C语言实现16进制数与10进制数的转化

    C语言实现16进制数与10进制数的转化 这里有两种情况 xff1a 第一种情况 xff1a 如果我得到的是一个16进制数 xff0c 我通过肉眼看到的就是16进制显示 xff08 这里看到的肯定打印结果 xff09 xff0c 比如85 x
  • 每个程序员半小时内必须解决的5个编程问题(C语言实现)

    最近关注的几个算法的公众号都看到了如题的一篇文章 xff0c 后1道题单拿出来我肯定不能半个小时内解决 前三道题非常基础 xff0c 相信大部分人能用自己熟悉的语言很快解决 xff0c 而且解决的方法可以多种多样 xff0c 这里说一下我对
  • 使用汇编语言与C语言实现LED1/LED2/LED3三盏灯点亮

    汇编语言代码段 text global start start LED1点灯LED1 gt PE10 64 1 对LED1进行初始化 RCC AHB4 ENSETR MODER OTYPER OSPEEDR PUPDR 64 2 实现LED
  • 一篇文章带你搞懂扫雷小游戏(c语言实现)

    目录 前言 1 游戏设计逻辑 2 游戏思考及实现过程 2 1符号与棋盘的建立 2 2棋盘的初始化与打印 2 3布置雷 2 4 排查雷并设置结束标志 3 代码展示 test c game c game h 前言 扫雷是一款经典的小游戏 xff
  • C 语言实现 FTP 服务器

    这个有专门的课程讲解我看到 xff0c 百度也能搜到不少相关的 我觉得你可以去把这个弄懂
  • 无名的ADRC的C语言实现

    分为ADRC h和ADRC c 确实看头文件有用 xff0c 有哪些变量都一目了然 和ACfly一样的是比如都有beta这个参数 ADRC c 本程序只供购买者学习使用 xff0c 版权著作权属于无名科创团队 xff0c 无名科创团队将飞控
  • 记录:在ubuntu中以C语言实现json文件读取遇到的问题(1)(说不定会有2)

    4 12 记录在ubuntu中以C语言实现json文件读取遇到的问题 xff08 1 xff09 xff08 说不定会有2 xff09 暂记录遇到的问题及解决 xff0c 其中还有些原因没有搞明白 xff09 1 首先过程参考自一位大佬的博
  • C语言实现FTP文件传输

    一 要求 FTP实则为两个程序的互相交流 xff0c 把信息指令相互发送并处理 1 客户端请求下载文件 把文件名发送给服务器 2 服务器接收客户端发送的文件名 根据文件名找到文件 xff0c 把文件大小发送给客户端 3 客户端接收到文件大小
  • C语言实现UDP通信

    UDP通信 UDP是一种无连接的尽最大努力交付的不可靠连接 xff0c 通信之前无需先建立连接 xff0c 自然而然 xff0c 通信之后也就无需再释放连接 通信的套接字 UDP所采用的通信接口与前面讲过的TCP通信接口相同 xff0c 只
  • PID控制算法的C语言实现

    PID控制算法的C语言实现一 PID算法原理 最近两天在考虑一般控制算法的C语言实现问题 xff0c 发现网络上尚没有一套完整的比较体系的讲解 于是总结了几天 xff0c 整理一套思路分享给大家 在工业应用中PID及其衍生算法是应用最广泛的
  • C语言实现http post请求和get请求,post请求可以上传图片和文件

    文章目录 1 http协议简介2 http协议分析2 1 http请求2 1 1 请求行2 1 1 1 请求方法2 1 1 2 URL2 1 1 3 协议版本2 1 1 4 请求行总结 2 1 2 请求头部2 1 3 请求数据 2 2 ht
  • c 语言udp方式连接代码,C语言实现UDP连接的参考代码

    C语言实现UDP连接的参考代码 xff0c Client连接上Server后将自己所在目录下的 34 liu 34 文件中的前三行文字发送到Server端去 xff0c 然后Server负责接收和显示 server c include in
  • c语言实现strcat函数

    char strcat char strDestination const char strSource 一 函数介绍 作用 xff1a 连接字符串的函数 xff0c 函数返回指针 xff0c 两个参数都是指针 xff0c 第一个参数所指向
  • Linux下的UDP服务器客户端的搭建(C语言实现)

    大家好 xff0c 我是练习编程时长两年半的个人练习生昆工第一ikun xff0c 昨天我们说了搭建TCP的服务器和客户端 xff0c 今天我们就来分享一下UDP的服务器和客户端搭建 UDP的特点是无连接 xff0c 多个客户端可以发送消息
  • UDP通信 (C语言实现)

    直接看代码吧 v乛 乛 udp server c 文件信息 文 件 名 udp server c 创 建 人 文件创建日期 年 月 日 描 述 UDP 回射服务器程序
  • C语言实现TCP通信

    C语言通过socket编程实现TCP通信 服务端客户端通信例子 xff1a socket tcp 通信1 xff0c socket tcp通信2 xff0c udp使用讲解 xff0c socket udp通信例子 TCP IP协议 叫做传

随机推荐

  • Ubuntu子系统VcXsrv黑屏compiz (core)

    在windows10上安装图形化ubuntu桌面的步骤 xff1a 1 安装 windows 子系统 ubuntu 1 xff09 在启用或关闭Linux 的 Windows子系统 2 xff09 在Microsoft Store中搜索ub
  • 虚幻引擎5.1版本新增功能

    虚幻引擎5 1版本新增功能 虚幻引擎5 1现已发布 xff01 2022年11月15日 其他应用 功能 广播与实况活动 建筑 影视 模拟 汽车与运输 游戏 虚幻引擎5 1 虚拟制片 我们很高兴地宣布 xff0c 虚幻引擎5 1现已推出 在这
  • vc与dev-c++混合编程 动态链接库c函数调用

    上回书说道 xff0c 如何在vc中使用dev c 43 43 中的类 xff0c 这次说一个更简单的问题 xff0c 如何实现vc调用dev c 43 43 的函数 1 打开dev c 43 43 新建工程 xff0c 选择dll xff
  • 【译】你可能不知道的iOS性能优化建议(来自前Apple工程师)

    作者丨凉介 来源丨掘金 链接 xff1a https juejin im post 5e4cfa4f6fb9a07cce74dba7 今天在推特上看到一篇关于性能优化不错的文章 xff0c 是前苹果开发人员写的 xff0c 翻译了一下与大家
  • c++20 concept

    Visual Studio 2019今天发布了16 3版本更新 xff0c 加入了C 43 43 20的concept支持 xff0c 在此记录一下concept的用法 xff1a concept示例 1 限制只能打印int类型 span
  • 解决STM32程序一烧录进去断电或复位即丢失问题

    分享一下个人错误经验 xff0c 之前焊接了一块STM32F103RCT6芯片 xff0c 配了ISP自动下载电路 xff0c 焊接好后上电烧写发现可以烧录进去 xff0c 但是怎么一断电或者一复位怎么程序就没了 xff0c 连一个简单的L
  • 阿里云ECS Windows服务器MySQL无法启动排查的解决方法

    问题现象 Windows主机 xff0c 部署MySQL程序后 xff0c 重启开机无法自动启动 xff0c 同版本在其他服务器运行正常 问题原因 排查Windows系统日志 xff0c 发现有如下报警记录 xff1a Microsoft
  • C规范编辑笔记(三)

    往期文章 xff1a C规范编辑笔记 一 C规范编辑笔记 二 正文 xff1a 继上篇我们的C规范编辑笔记 二 后 xff0c 我们今天开始分享第三篇笔记 xff0c 话不多说 xff0c 我们开始 1 一个 tab 键盘等于四个空格键 我
  • linux免费证书申请教程

    linux免费证书申请教程 直接去阿里云 菜单有个证书服务 进去有个购买证书菜单 选择免费的 然后会提示写个人资料 然后系统生成csr 然后提交审核 查看原文 xff1a http newmiracle cn p 61 963
  • wsl2迁移镜像虚拟磁盘

    wsl2备份 迁移 ubuntu 虚拟磁盘镜像 Author once day Date 2022年11月13日 1 引言 默认的wsl2会把Linux子系统虚拟磁盘文件放在C盘下 xff0c 如果在wsl2里面安装了太多的程序 xff0c
  • Gitlab-标准流程配置[总结多篇文章并实践多次,小白零基础亦可上手]

    谈谈这几天的感受吧 xff1a 公司因为以前的gitlab服务器出了一点问题 xff0c 让半路出家的我来看一下 xff0c 最后说模拟搭建一个gitlab服务器 xff0c 先看一下里面是跑些什么东东 xff0c 需要配置的内容是什么等
  • C语言之数组(数组赋值的三种形式)

    在C语言中 xff0c 对数组进行赋值的三种形式 1 通过循环的形式 即 xff1a 数组名 下标 对数组的元素进行依次赋值 include lt stdio h gt int main int i int a 10 61 0 for i
  • 4招教你创建一个程序代码

    Python 有两种主要的方式来完成你的要求 xff1a 语句和表达式 xff08 函数 算术表达式等 xff09 相信大部分读者已经了解二者的不同 xff0c 但是不管怎样 xff0c 我们还是再来复习一下 语句使用关键字来组成命令 xf
  • 苹果电脑备份和恢复方法。Time Machine

    苹果电脑在Leopard操作系统中自带了一个叫时间机器 Time Machine 的软件 xff0c 用于数据备份和恢复 既然70 80 的用户都不做备份 xff0c 为什么苹果要在Leopard中隆重推出时间机器这个新功能呢 xff1f
  • 进程通讯-Condition

    进程之间通讯 Condition await signal signalAll await 调用await方法的线程释放当前的lock xff0c 当前线程处于等待状态 类似于synchronized的wait 方法 signal 调用si
  • C语言中的位移运算

    位移运算 1 左移 span class hljs comment C左移表达式 span x lt lt k 对于一个n位的操作数x xff0c x lt lt k操作会生成一个值 xff1a x向左移动k位 xff0c 丢弃最高的k位
  • C语言读取文本文件中的矩阵,并将其保存在数组中

    一个简单的C语言读取文本文件操作 xff0c 原数据是3 5的一个矩阵 如下图 xff1a 读取后保存在一个二维数组中 include lt stdio h gt int main int a 3 5 FILE fpread fpread
  • LabVIEW2020 使用“格式化写入字符串”函数将数字转换为字符串

    目录 一 案例 xff1a 二 前面板 三 程序框图 四 验证 一 案例 xff1a 想把数值输入控件中的数字转换成字符串 例如 xff1a 数值输入控件输入30 xff0c 想转换成字符串 34 30 34 二 前面板 1 在前面板窗口上
  • Matlab使用fscanf函数读取文本数据

    这里假设文本文件中有5 4的一组数据 xff0c 使用Matlab进行读取并保存在一个矩阵中 原数据形式如下 xff0c 文件名为data123 xff0c 中间使用空格隔开 xff1a 1 2 3 4 5 6 7 8 9 10 11 12
  • 辗转相除法详解(C语言实现)

    辗转相除法 定义基本原理原理证明 算法实现思想C语言实现 定义 辗转相除法 xff0c 被称为欧几里得 xff08 Euclidean xff09 算法 xff0c 是求最大公约数的算法 基本原理 原理 两个正整数a和b a gt b xf