C语言实现求最大公约数

C语言实现求N个数的最大公约数和最小公倍数 一、问题描述:求N个数的最大公约数和最小公倍数。 要求:1.程序风格良好(使用自定义注释模板); 2.提供友好的输入输出,并进行输入数据的正确性验证。 二、流程图: 最大公约数: 最小公约数: 三、程序实现: //问题描述:求N个数的最大公约数和最小公倍数 // WanTing Wang // 2019.03 #include <stdio.h> #include <m... 阅读详情

怎样用C语言实现求最大公约数之辗转相除法

#include<stdio.h>
int MIN(int a,int b);
int MaxCommonFactor(int a,int b);
int main()
{
int a,b;
scanf("%d%d",&a,&b);
if (a>=0&&b>=0)						//判断输入是否为正整数 
printf("%d\n",MaxCommonFactor(a,b));
else printf("-1\n");
return 0;
}
int MaxCommonFactor(int a,int b)	//辗转相除法 
{int x=1,i,j=0;
for (i=2;i<=MIN(a,b);i++)
	if ((a%i==0)&&(b%i==0))
	{
	x=x*i;							 
	a=a/i;
	b=b/i;
	j++;
	i=1;
	}
return x;
}

int MIN(int a,int b)
{
if (a>b)
a=b;
return a;
}

其中,假如输入的不是正整数,返回-1;
输入的数没有最大公约数,则返回1;
正常情况返回最大公约数。

如果有不完善的地方请帮我改正或联系我改正谢谢。

求两个整数的最大公约数的各种算法(C语言实现)       求两个整数的最大公约数有两种算法——辗转相减法和辗转相除法,这两种算法的思想差不多,就是让这两个整数不断的减去最大公约数的倍数。辗转相减法的结束条件是这两个整数相等,此时这两个数的值就是最大公约数。辗转相除法的结束条件是两个数取模等于零,即一个数能整除另一数时,此时较小的数就是最小公约数。我用递归和非递归分别实现的这两种算法。程序采用C语言实现,已经在visual C++6.0上运行通过了,代码不是很简练,与大家分享学习经验了!#include /*返回两个整数的最大公约数--辗转相减法递归实现 阅读详情

相关推荐

【C语言】实现求两个数的最大公约数【四种算法】

题目 给定两个数,求这两个数的最大公约数 例如: 输入:20 40 输出:20 解题思路 最大公约数:即两个数据中公共约数的最大者 求解的方式比较多,暴力穷举、辗转相除法、更相减损法、Stein算法算法 方法一:辗转相除法(推荐此方法) 思路: 例子:18和24的最大公约数 第一次:a = 18 b = 24 c = a%b = 18%24 = 18 循环中:a = 24 b=18 第二次:a = 24 b = 18 c = a%b = 24%18 = 6 循环中:a = 18 b

Edison's 小宇宙 9万+

C语言求最大公约数代码

题目:随机输入两个数,求其最大公约数 在此展示三种常用解题思路 1.首先展示第一种思路 #include <stdio.h> int main() { int a,b,c; //先定义变量 printf("请输入:\n"); scanf("%d%d",&a,&b); //输入两个整型数字 if(a>b) { for(int i = b;i>0;i--) { if(a%i == 0 && b%i ==

Stars____的博客 7万+

28.C语言_实现“辗转相除法”求最大公约数

通过本文的介绍和代码实现,我们理解了辗转相除法的基本原理和其在计算最大公约数中的应用。辗转相除法是一种高效且简洁的算法,它能够通过反复除法操作迅速计算出最大公约数,广泛应用于数学、计算机科学、加密等领域。使用C语言实现这一算法,不仅让我们掌握了算法的实现方式,还通过实际代码深入理解了该算法的工作流程和优化方式。希望大家能够通过本文获得更多编程经验,提升解决算法问题的能力。如果你有任何问题或进一步的想法,欢迎在评论区留言讨论!

Lucy_wzw的博客 552

最大公约数程序c语言,C语言求最大公约数(两种最简单的算法实现)

第一种:用较小数的最大约数于较大数作求模元算#include/*求两个数的最大公约数*/intmain(){inta,b,max,min,i,result;scanf("%d,%d",&a,&b);printf("您输入的的值分别为%d,%d\n",a,b);if(a>b){max=a;min=b;}elseif(a==b){result=a;gotoout;}e...

weixin_35361243的博客 4087

说说通用报表控件

我们已经开发有2款WINCC报表控件,一种是固定模板,一种是自定义模板。但是它们有个共同特点,就是数据都是来自WINCC的归档数据库。使用WINCC归档数据库的好处是不需要自己写脚本保存数据。但是有些情况下,我们需要自己保存数据,或者第三方系统通过数据表的方式给我们提供数据。那这样的话,我们之前的两款控件就不支持了。正好有个客户有类似需要,于是加了一天班写了个通用报表控件。之所以说是通用,是因为它可以插入任何支持.NET控件的组态软件中,比如WINCC、IFIX等。并且它不依赖于组态软件自己...

HwLib_的博客 3551

拆解人形机器人:核心硬件与驱动系统

本文深入解析人形机器人的核心硬件系统,将其类比为"骨骼+肌肉+神经"的集成体。重点介绍了三大关键组件:驱动单元(无框力矩电机和空心杯电机)、传动单元(谐波减速器和行星滚柱丝杠)以及感知单元(力矩传感器、编码器和IMU)。文章指出一体化关节模组正成为行业趋势,能够实现更紧凑的结构和更高的可靠性。同时分析了硬件价值量分布,强调丝杠、电机等部件是当前技术高地和成本重心。最后指出随着技术进步,机器人价值将更多向"大脑"和"神经"转移。

小明的博客 1530

C语言求最大公约数(四种)

九章算术—更相减损法判断a和b那个大,然后

PAQQ的博客 5万+

CAN 比特率和采样点计算

架构根据输入频率和比特率自动计算。

ldinvicible的专栏 787

C语言 最大公约数三种方法

1.穷举法 输入 a,b两个数字,比如a>b,就从2到b,挨个试,如果是公约数就赋值给k,因为是从小到大的穷举数字,所以最后赋值给k的数字一定是最大的公约数。 #include<stdio.h> int main () { int a,b,c,i,k; scanf("%d %d",&a,&b); c=a>b?b:a; for(i=2;i<=c;i++) { if(a%i==0&&b%i==0) k=i; } prin

gyzyc6的博客 5237

离散系统傅里叶变换的常用结论证明

本文介绍了离散系统傅里叶变换的三个重要结论:1)时域卷积对应频域相乘(公式1-3);2)时域相乘对应频域卷积(公式4-6);3)帕塞瓦尔定理(公式7)及其广义形式,证明信号能量在变换域保持不变。文末提供了MATLAB卷积运算演示程序,通过动画展示离散信号卷积过程(翻转、平移、相乘、累加),并以方波信号为例给出运行结果图。该程序直观呈现了卷积运算的步骤与结果。

newtton的博客 1304

7-15 估值一亿的AI核心代码

函数封装,含一个字符串中的所有的某个字串全部替换成另一个的函数,还有判断是否独立的函数以上图片来自新浪微博。!

weixin_73529240的博客 601

C语言求最大公约数问题分析(含代码分享)

最大公约数求解,是在循环语句课后习题中必不可少的能力提升题这里为大家带来两种求解方法,希望对大家能有所帮助。以上便是两种大的思路及代码展示,如有不足,欢迎大家指出,我也是计算机大学生,请多多指教。

qq_73616760的博客 2903

Ubuntu24.04下Librenms的完整安装与配置指南

本文提供了在Ubuntu 24.04 LTS系统上完整安装与配置LibreNMS网络监控系统的详细指南。内容涵盖系统环境准备、依赖安装、源码获取、PHP/数据库/Nginx配置、Composer安装、网页向导设置以及设备添加与日常使用,帮助用户快速部署一套功能强大的开源网络监控解决方案。

tgb3456789的博客 1139

C语言实现求最大公约数的三种方法

文章来源: 学习通http://www.bdgxy.com/ 目录题目描述问题分析代码实现方法一:穷举法方法二:辗转相除法方法三:更相减损法题目描述 求任意两个正整数的最大公约数 问题分析 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,

菜鸟教程 3244

Applied Energy期刊小白论文投稿模板-流程经验分享

Applied Energy期刊小白论文投稿模板-流程经验分享,Elsevier期刊(爱思唯尔)投稿流程

zzu_Flyer的博客 4万+

SwiftUI 5 教程之 SwiftData使用入门(教程含源码)

对我来说,记住日期很难。是的,您可以设置该日期的提醒,但该提醒无法产生紧迫感。让我们创建一个应用程序,我们可以在其中添加将来发生的事件。如果我们可以在主应用程序上看到所有即将发生的活动,那就太好了。也许将它们添加到小部件上以营造紧迫感。对于任何事件,我们需要跟踪哪些事情?我们将在下一篇文章中添加更多属性,其中我们将讨论迁移。现在,这就是我们所需要的。开始吧。

iCloudEnd的博客 987

求两个数的最大公约数的三种方法及C语言实现方式

零、总述 本文主要讲述求两个数的最大公约数的三个算法及其C语言实现方式,本文需要了解最大公约数的定义(具体可自行百科或者或者其他途径了解)。 另外本文中C语言实现中使用的Max_sort函数是为了保证a一定是大于b,如果a&lt;b,则将其交换,方便后续编码。代码如下: int Max_sort(int *a, int *b) { if (a == NULL || b == NULL) ...

G_METHOD的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C语言实现:求两个数的最大公约数

C语言实现:求两个数的最大公约数 程序如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int m, n, temp, i; printf(“输入 m 和 n:”); scanf("%d%d", &m, &n); if (m<n) { temp = m; m = n; n = te...

weixin_44779591的博客 346

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C语言实现两种求最大公约数的方法

第一种:辗转相除法,

2301_80401656的博客 548

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

两数求最大公约数的三种方法的C语言实现

任意输入两个数,求出二者的最大公约数,以C语言实现。以下是三种方法以及对应思路: 辗转相除法。 定义两个变量存放两个数(a,b),先以冒泡法将较大数存放在在b内,较小数存放于a。 相除法的思路是: 1.b÷a取余 2.判断余数是否为零,若为零,则最大公约数为a;不为零,则进行下一步 3.将a的值赋给b,余数值赋给a。执行第一步。 转换为C语言后,代码如下: #include

Bro_J的博客 2515

一个简单的c语言程序实现两个整数求最大公约数

昨天编了一个简单的c语言程序,目的是实现求两个整数的最大公约数,代码如下: #define _CRT_SECURE_NO_WARNINGS #include #include int main() { int num1 = 0, num2 = 0, gcm = 0; int i = 0; printf("请输入两个整数:\n"); scanf("%d %d",&num1,&num2)

LordWingF的博客 6687

辗转相除法求最大公约数:C 语言实现与经验分享

优化算法效率:上述代码中,在交换 a 和 b 以及更新 a 和 b 的过程中,可以进一步简化代码,减少临时变量的使用。此时,a 和 b 的最大公约数就等于 b 和 r 的最大公约数。不断重复这个过程,直到余数为 0,此时的除数就是原来两个数的最大公约数。在 while 循环中,首先通过比较确保 a 是较大数,然后计算 a 除以 b 的余数,并不断更新 a 和 b ,直到 b 为 0,此时 a 就是最大公约数。这样,在其他需要求最大公约数的程序中,可以方便地复用该函数,提高代码的可维护性和可扩展性。

2402_89640902的博客 883

C语言实现求多个数字的最大公约数和最小公倍数

求N个数的最大公约数和最小公倍数。用C语言实现程序解决问题。 1.程序风格良好(使用自定义注释模板) 2.提供友好的输入输出,并进行输入数据的正确性验证。 该程序含有两个子函数,分别是求两个数的最大公约数和最小公倍数的,当需要求多个数字时只需进行嵌套调用就可,程序虽小,也是心血。 #include<stdio.h> int calculate(int a,int b)//求最大公约数...

qq_43425417的博客 6078

求最大公约数的设计与C语言实现

求最大公约数是一常见的数学问题,数学思维中的常用求法有指数分解、短除法、辗转相除和更相减损法,其中前两个算法通过代码实现的效率是非常低的,我能想到的方法只有首先就需要一个求质数算法的表达式来表示无穷大的质数集合,然后再试模判断,成功后进行分解。在这里我们主要研究后两个算法的设计与C语言的实现。    1、辗转相除法        其方法顾名思义,就是大数模小数取余,再用余数与小数进行比较,继续重复

pawnsir的博客 572

c语言求最大公约数的程序设计,求最大公约数的设计与C语言实现

求最大公约数是一常见的数学问题,数学思维中的常用求法有指数分解、短除法、辗转相除和更相减损法,其中前两个算法通过代码实现的效率是非常低的,我能想到的方法只有首先就需要一个求质数算法的表达式来表示无穷大的质数集合,然后再试模判断,成功后进行分解。在这里我们主要研究后两个算法的设计与C语言的实现。1、辗转相除法其方法顾名思义,就是大数模小数取余,再用余数与小数进行比较,继续重复大数模小数取余的操作,直...

weixin_42662171的博客 627

求最大公约数(C语言实现)

求最大公约数有多种方法,接下来我对辗转相除法、更相减损法分别做介绍。 辗转相除法: gcd(a,b) = gcd(b,a mod b)。 假如,需要求 1997 和 615 两个正整数的最大公约数,用辗转相除法,是这样进行的: 1997 / 615 = 3 (余 152) 615 / 152 = 4(余7) 152 / 7 = 21(余5) 7 / 5 = 1 (余2) 5 / 2 = 2 (余1) 2 / 1 = 2 (余0) 至此,最大公约数为1 以除数和余数反复做除法运算,当余数为 0 时,取当前算式

Juli yi~的博客 3万+
上一篇: C语言进制转换(未完成)
下一篇: C语言实现九九乘法表
WLHSDXN
博客等级 码龄7年 10粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值