计算两个正整数的最大公约数。请按以下给定的函数原型编程:
int MaxCommonFactor(int a, int b);
返回值:返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1。
程序的运行示例1如下:
45,155 (输入,用,隔开)
5 (输出)
程序的运行示例2如下:
-9,20
-1***输入数据格式***:"%d,%d"***输出数据格式***:"%d" 1 #include<stdio.h>2int MaxCommonFactor(int a, int b);3int main(void)4{5int a, b;6 ...
C程序设计第八章的第一道题目,求两个数的最大公约数和最小公倍数。需要注意一下几点:
1.最大公约数和最小公倍数间的关系:
设两个数是a,b最大公约数是p,最小公倍数是q
那么有这样的关系:ab=pq
所以q=ab/p。2.任意整数和0的公约数是该整数的所有约数,所以它们的最大公约数为该整数本身。3.碾转相除法:被除数%除数=余数,如果余数不为0,就让原来的除数做为被除数,余数作为除数,再进行运算 被除数%除数=余数,直到得到的余数为...
例10 最大公约数问题描述有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。输入数据第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。输出格式输出对应的c,每组测试数据占一行。输入样例26 212 4输出样例48 (1)编程思路。 利用转辗相除法求两个整数的最大公约数。例如,求整数m=48,n=18两个数的最大公约数的方法如左...
如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。最大公约数指两个或多个整数共有约数中最大的一个。而,最小公倍数是两个或多个整数公有的倍数中除0以外最小的那个公倍数。【视频教程推荐:C语言教程】计算两个数的最大公约数根据约数的定义可知,某个数的所有约数必不大于这个数本身,几个自然数的最大公约数必不大于其中任何一个数。要求任意两个正整数的最大公约数即求出一个不大于其中两者中的任何一个,但又...
C语言求最大公约数GCD的算法C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试)C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试)
#include <iostream>int gcd1( int a, int b ) {while( b > 0 )
目录
一 、最小公倍数算法二、最大公约数算法:(1)用短除法(2)辗转相除法(3)根相减损术(4) 相减法(5)穷举法一 、最小公倍数算法公式:最小公倍数=两整数的乘积÷最大公约数二、最大公约数算法:
(1)用短除法
求两个数的最大公因数和最小公倍数时,从两个数公有的最小质因数除起,一直除下去,直到除得的两个商互质为止。 最大公因数=所有质因数相乘。 最小公倍数=所有质因数乘积*两个商互质的乘积。
#include<stdio.h>int main(){in...
C语言三种算法求解最大公约数与最小公倍数
最大公约数与最小公倍数的求解是很多初学C的人所面临的一道问题。当然这道问题并不难解答,也有很多人已经写过相关的博客,我在此书写此篇博客,一是为了让自己能够夯实基础,另外就是希望能够帮到和我一样的初学者。
当然,在写这篇博客之前,我已经做过相关资料的调查,可能读者会发现此篇博客会与其他人的博客有所重复,但是,我保证绝未抄袭。好了,进入正题!
问题:请从键盘上输入两...
C语言基本算法 :1.求最大公约数与最小公倍数
一.最大公约数:
最大公约数目前有三种求法:更相减损术、辗转相除法以及穷举法。 1.更相减损术: 算法介绍:设两个整数数a和b,以较大数减较小数,得出的差与减数比较大小,再次使用较大数减较小数,直到减数与差相等,此时减数(差)即为最大公约数。 代码展示:
#include <stdio.h>
#include <math.h>
int main()
{int a,b,c,i;printf("请输入你比较的数字:");scanf("%d",&a);print...
>>>>' rel='nofollow' target='_blank'>- - -》博主推荐,学生党、程序员必备,点击查看- - - >>>>>
热门文章推荐
以下50道算法编程题访问量较大,包含常用语法,数据结构,解题思路等等,作为C语言学习者必练题目推荐给各位。创作不易,记得一键三连哦!!!程序设计(C/C++)热门文章一览表公众号【C you again】回复“浙大版C语言”获取完整题目集及代码 1、浙大版《C语言程序设计(第3版)》题目集 练习2-6 计算物体自由下落的...
辗转相除法(欧几里德算法)
假如需要求 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 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数 1。
#include<stdio.h>
int fun(int a,int b){int r,t;if(a<b...
/*******************
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
******************/# include<stdio.h>
int main()
{int a,b,c,x,y;printf("请输入两个正整数,用逗号间隔:");scanf("%d,%d",&a,&b);x=a;y=b;if (a<b){c=a;a=b;b=c;}while (b!=0){c=a;a=b;b=c%b;}c=x*y/a;printf("最大公约数为%d,最小公倍数为%d\n",a,c);return 0;
}
求最小公倍数算法:
最小公倍数=两整数的乘积最大公约数
求最大公约数算法:
(1)辗转相除法
有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
例如求27和15的最大公约数过程为:
2715 余121512余3123余0因此,3即为最大公约数
复制代码
1 #include<stdio.h>
2 int main() /* 辗转相除法求最大公约数 /
3 {
4 int m, n, a, b, t, c;
5 printf(“Input two integer nu...
题目描述 输入两个正整数m和n(1<m, n<1000000000),求其最大公约数和最小公倍数。 输入 有多行,每行2个正整数m和n。 输出 m和n的最大公约数、最小公倍数。 样例输入 Copy 16 24 5 7 样例输出 Copy 8 48 1 35 提示 要求:编写求最大公约数和最小公倍数的函数。
# include <stdlib.h>
# include <stdio.h>//最大公约数
int gcd(long a, long b)
{int i;int temp;if (a > b){temp = a;a = b;b = temp;}for (i = a; i > 0; i--){if ...