c语言中两个数最大公约数怎么求,C语言求两个数中最大公约数
在C语言中如何求两个数的最大公约数呢?下面用三种方法进行求解。
方法一:穷举法。
先比较两个数的大小,然后找出较小数t,最后判断t为何值时两个数都能整除,此方法效率较低。
代码如下:#include
int main()
{
int num1,num2,temp,i;
scanf("%d%d",&num1,&num2);
if(num1>num2)
{
temp=num1;
num1=num2;
num2=temp;
}/*将较小值赋给num1*/
for(i=num1;i>0;i--)
{
if(num1%i==0&&num2%i==0)/*两个数都被i整除时即为最大公约数*/
printf("%d ",i);
}
return 0;
}
方法二:辗转相减法。
辗转相减法是用较大数减去较小数,再比较减数和差的大小,用较大数减去较小数,如此不断循环,直到两数相减为0停止,则最大公约数就求出来了。
代码如下:#include
int main()
{
int a,b;
scanf("%d%d",&a,&b);
while(a!=b)
{
if(a>b)a=a-b;/*比较两数大小,大数减小数差并赋给a*/
else b=b-a;
}
printf("%d",b);
return 0;
}
方法三:辗转相除法。
辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;这样逐次用后一个数去除前一个余数,直到余数是0为止.那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数。)
代码如下:#include
int main()
{
int num1,num2,temp;
scanf("%d%d",&num1,&num2);
/*不需要判断两个数的大小,当num1
while(num2)
{
temp=num1%num2;/*辗转相除求最大公约数*/
num1=num2;
num2=temp;
}
printf("%d",num1);
return 0;
}
最小公倍数求法:要求的两个数相乘除以最大公约数就是两个数的最小公倍数。
c语言中两个数最大公约数怎么求,C语言求两个数中最大公约数相关推荐
- 输入两个自然数min,max,计算、输出[min,max]中的超级素数的个数#C语言
题目:请编写程序,输入两个自然数min,max,计算.输出[min,max]中的超级素数的个数 超级素数: 一个素数,依次从低位去掉一位,二位,--,若所得的各数仍都是素数,则称超级素数. 例如:73 ...
- c语言两字符串转数字后相加,一个觉得很难的C语言问题。对两个数字字符串相加。 C语言 如何把一个字符串中相连的两个数字转化为一......
导航:网站首页 > 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个字符串中相连的两个数字转化为一... 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个 ...
- c语言编程从键盘上输入两个整数m和n,C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数...
C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言习题 求 ...
- 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: [实验案例3:函数的递归调用] 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数. [实验指导] 分析:m.n为两 ...
- c语言两个小数加减乘除,加减乘除英语 c语言计算两个数的加减乘除?
加减乘除的英文单词 找了N久也米找到 谁能弄一个健全点的英文符号大典 用法用中文写啊 我使学. #include int main(){ float x,y,a,b,c,d; printf("inpu ...
- 用c语言求1 n的素数个数 给出两种解法,【题目】求n以内的素数个数
最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ...
- ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...
- R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离、dist函数计算矩阵中两两元素的曼哈顿距离
R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离.dist函数计算矩阵中两两元素的曼哈顿距离 目录 R语言计算曼哈顿距离(Manhattan Distance ...
- C语言试题三十五之找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
1. 题目 请编写一个函数function,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回.主函数中x是数组名,n 是x中的数据个数,max存放最大值,i ...
- R语言ggcharts包的dumbbell_chart函数可视化哑铃图(对比两个年份数据的差异)、scale_y_continuous函数中的labels参数自定义设置X轴坐标标签的格式
R语言ggplot2可视化:使用ggcharts包的dumbbell_chart函数可视化哑铃图(对比两个年份数据的差异).使用scale_y_continuous函数中的labels参数自定义设置X ...
最新文章
- 高并发下的redis击穿,你需要了解下布隆过滤器
- Spring Cloud微服务笔记(一)微服务与云概念
- 10分钟搞定 Java 并发队列好吗?好的
- 在2003 server系统上部署DHCP服务器
- [蓝桥杯]算法训练 The Red Button||codeforces 325E(哈密顿回路)
- spring @lazy_Spring @Lazy批注用例
- live555源代码简介
- LeetCode 1630. 等差子数组
- 第二次作业+105032014149
- matlab字符串元胞数组,MATLAB字符串数组元胞数组和构架数组
- java 快速创建map_快速创建Map并初始化,超级简单
- mimics能导出什么格式_Mimics到底支持怎样的图像格式(修正版)
- mac修改eclipse的内存配置
- 草莓换个做法,迫不及待想要吃
- 华为中国生态伙伴大会2019盛大开幕:智能进化 共赢生态未来
- android canvas 画圆边缘模糊,Android canvas画圆
- 集成学习(随机森林)
- Python基础学习第七天
- 经销、代销与联营的区别与联系详解
- pythonreshape函数三个参数_Python Numpy中reshape函数参数-1的含义