欧几里得算法求最大公约数

news/2024/9/17 12:27:30/ 标签: 算法, c++

        两个不全为0的非负整数m,n的最大公约数记为gcd(m,n),代表能够整除(即余数为0)m和n的最大正整数。

计算gcd(m,n)的欧几里得算法

第一步:

        如果n为0,则返回m作为结果,同时过程结束;否则进入第二步。

第二步:

        m除以n,将余数赋值给l。

第三步:

        将n的值赋值给m,将l的值赋值给n,返回第一步。

示例:

例如求gcd(27,30)

        gcd(27,30)= gcd(30,27)= gcd(27,3)= gcd(3,0)=3

        27与30的最大公约数为3

C语言欧几里得算法求最大公约数:

C语言代码:

/*求两个不全为0的非负整数的最大公约数欧几里得算法
*/#include<stdio.h>
#include<stdbool.h>// 欧几里得算法函数
int OJLD(int x, int y)
{int z;while (y != 0){z = x % y;x = y;y = z;}return x;
}int main()
{int m, n, result;bool flag;do{flag = false;printf("请输入两个不全为0的非负整数,中间以空格分隔:\n");scanf_s("%d %d", &m, &n);//输入检验,确保m,n为两个不全为0的非负整数if ((m < 0 || n < 0)||(m==0 && n==0)){	flag = true;printf("您的输入有误,请重新输入\n");}} while (flag);result = OJLD(m, n);  //调用欧几里得函数计算最大公约数printf("%d与%d的最大公约数为%d", m,n,result);  //输出结果return 0;
}

运行示例:


http://www.ppmy.cn/news/1523727.html

相关文章

Makefile的四种赋值运算符

Makefile有四种赋值运算符&#xff1a;简单赋值&#xff08;:&#xff09;、递归赋值&#xff08;&#xff09;、条件赋值&#xff08;?&#xff09;和追加赋值&#xff08;&#xff09; 1. 简单赋值&#xff08;:&#xff09; 作用&#xff1a;覆盖之前的值。若在多次简单赋…

Rancher 与 Kubernetes(K8s)的关系

1. 简介 1.1 Kubernetes 作为容器编排平台 Kubernetes 是一个开源平台&#xff0c;用于自动化部署、扩展和管理容器化的应用。它提供了容器调度、自动伸缩、健康检查、滚动更新等功能。 例子&#xff1a;假设您有一个微服务架构的应用程序&#xff0c;需要运行在多个节…

如何在 Vue 项目中缓存字体文件以提高性能

在现代 Web 开发中&#xff0c;字体文件通常是页面加载时间的重要因素之一。特别是在字体文件较大或网络环境不佳的情况下&#xff0c;用户体验可能会受到影响。本文将详细探讨如何在 Vue.js 项目中优化字体文件的加载和缓存&#xff0c;以提高页面性能。 一、为什么要缓存字体…

`Android NDK` `readelf` 在`Terminal`上的使用(配置`readelf`)

Android NDK readelf 在Terminal上的使用&#xff08;配置readelf&#xff09; 当一个 Android APP 需要集成别的地方来的原生库&#xff08;.so&#xff09;时&#xff0c;你可能也会跟我一样会有那么几点疑惑&#xff1a; 这个 so 用的什么 NDK 版本编译的&#xff1f;会不…

【conda】理解 `conda` 和 `pip`:Python 包管理工具的全面对比与最佳实践

目录 1. 概述2. 主要区别2.1 包管理范围2.2 环境管理2.3 安装机制2.4 依赖解决 3. 是否可以混用3.1. 混用Conda和Pip的注意事项3.2 混用时的最佳实践 4. 安装位置5. 如何判断包来源5.1 查看包列表5.2 检查包的来源 总结 在 Python 的开发过程中&#xff0c;包管理工具扮演了至关…

深入解析`node-html-to-image`的`main.ts`源码:实现HTML到图片的转换

引言 node-html-to-image是一个强大的Node.js库&#xff0c;它允许开发者将HTML内容转换为图片。本文将深入解析该库的main.ts文件&#xff0c;揭示其内部工作原理&#xff0c;并帮助开发者更好地理解和使用该库。 项目背景与功能概述 node-html-to-image的主要功能是将HTML…

判断语句有几种写法

在编程中&#xff0c;判断语句用于基于特定条件来控制程序的执行流程。以下是一些常见编程语言中判断语句的几种基本写法&#xff1a; ### 1. if 语句 if 语句是最基本的条件判断结构&#xff0c;用于在条件为真时执行一段代码。 **示例**: c if (condition) { // 条件为…

西门子博途零基础学PLC必会的100个指令

#西门子##PLC##自动化##工业自动化##编程##电工##西门子PLC##工业##制造业##数字化##电气##工程师# 工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

深度学习算法:现代人工智能的核心驱动

深度学习&#xff08;Deep Learning&#xff09;在人工智能领域表现出色&#xff0c;其复杂但强大的算法驱动了许多突破性应用。从图像分类、自然语言处理到自动驾驶等&#xff0c;深度学习展现了前所未有的可能性。本文将深入剖析深度学习算法的核心概念、主要框架及其面临的挑…

浙大数据结构:01-复杂度3 二分查找

数据结构MOOC PTA习题 01-复杂度3 二分查找 标准的二分查找。 注意下标从1开始&#xff0c;Last结束 没找到返回NotFound Position BinarySearch( List L, ElementType X ) {int nL->Last;int l1,rn;while(l<r){int mid(lr)/2;if(L->Data[mid]>X)rmid;else lm…

奋楫者“先”,中国产业数字化以“存”致远

回顾人类社会发展历程&#xff0c;从甲骨文、纸张&#xff0c;到磁带、光盘&#xff0c;再到硬盘、SSD&#xff0c;数据存储的每一次变革&#xff0c;都推动着人类文明和社会经济飞速发展。 进入到数字经济时代&#xff0c;数据作为核心生产要素&#xff0c;正逐步融入到生产、…

尚品汇-支付宝退款、支付成功库存系统对接实现(四十九)

目录&#xff1a; &#xff08;1&#xff09;支付宝退款 &#xff08;2&#xff09;支付成功处理 &#xff08;3&#xff09;订单模块发送减库存通知 &#xff08;4&#xff09;消费减库存结果 &#xff08;1&#xff09;支付宝退款 直接在浏览器发起请求即可&#xff01; …

【鸿蒙开发从0到1 day08】

鸿蒙开发基础 一.联合类型二.枚举类型三.组件和样式1. ArkUI基本语法 四.尺寸五.字体1.字体颜色2.字体样式3.LineHeight() 设置行高 上间距文字下间距4.下划线:5.对齐方式(1)水平对齐方式(2)垂直对齐方式 6.文本缩进和文本省略号设置 六.图片1.图片的等比例缩放2.占位符3.图片填…

QT之QML学习四:Qt开启终端窗口,以及qml自定义Button聚焦矩形框去除

开发环境: 1、Qt 6.7.2 2、Pyside6 3、Python 3.11.4 4、Windows 10 前言:开启中端窗口的好处就是能够看到各种Debug信息以及能够看到各种报错信息。 最终效果如下 QT之QML学习四:Qt开启终端窗口,以及qml自定义Button聚焦矩形框去除 一、设置显示终端窗口1.勾选在终端运…

Redis实战:存储笔记点赞+好友关注+GEO搜索附件商户+用户签到+UV统计

存储笔记点赞&#xff1a; 这个需求也很简单&#xff0c;就是将每一篇笔记或者文章的点赞用户存储到redis中 我觉得我们需要有一个概念&#xff1a; 就是我们的key是什么&#xff0c;这个key肯定是这个笔记的id&#xff0c;所以我们需要有一个想法&#xff0c;就是一个笔记在…

计算机毕业设计 校内跑腿业务系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络) 文章目录 Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)前言一、Ubuntu依赖安装二、创建操作目录, 下载build_chain.sh脚本2.1 先…

Python作为客户端连接websocket

缘起 因为需要将MQTT中的数据推送给前端,但是前端不会直接连接MQTT,所以服务端做了一个中间层,通过websocket推送,但是在开发的过程中前端总是认为推送的数据不及时,所以这里又实用Python单独做了一个客户端做时间记录验证。开始吧 安装三方包 Python的生态很方便,这里…

已解决:ppt文件打开就是只读模式,如何改为可编辑模式?

PPT文档打开是只读模式&#xff0c;如何改成可编辑文档呢&#xff1f;这需要分几种情况来说&#xff0c;所以今天将介绍几种方法帮助PPT只读文档改为可编辑文档。 方法一&#xff1a; 我们可以先查看一下文件属性&#xff0c;属性中有只读属性&#xff0c;当我们打开文档之后带…

DFS算法专题(一)——二叉树中的深搜【回溯与剪枝的初步注入】

目录 1、DFS算法简介 2、算法实战应用【leetcode】 2.1 计算布尔二叉树的值 2.1.1 算法原理 2.1.2 算法代码 2.2 求根节点到叶节点数字之和 2.2.1 算法原理 ​2.2.2 算法代码 2.3 二叉树剪枝 2.3.1 算法原理 2.3.2 算法代码 2.4 验证二叉搜索树 2.4.1 算法原理 …