1楼:匿名用户
#include
void main()
{int zdgy(int m,int n);
int x,y;
printf(
2楼:匿名用户
#include
int main(void)
int ***(int a,int b)
else}
3楼:匿名用户
#include
#include
int main()
i = a; j = b;
while (j != 0)
printf("最大公约数%d ", i);
printf("最小公倍数%d", (a*b)/i);
printf("\n");
return 0;}
用c语言求最大公约数。
4楼:很多很多
1、新建一个c语言源程序,这里使用visual c++6.0的软件:
2、从键盘中输入两个正整数a和b。取两个数a,b中的较小值存放到变量n中。从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数,第一个找到的整数即整数a和b的最大公约数,最后将找到的结果输出即可完成程序的编写:
3、对源程序编译运行,测试输入4、6,得到最大公约数2说明程序是正确的,以上就是用c语言求最大公约数的过程:
5楼:东风冷雪
#include
intzdg(intn);
intmain()
intzdg(intn)
returnm;}
6楼:
|#include
intmain(intargc,char*argv)while(b)
r=a%b,a=b,b=r;
printf("the***is%d\n",a);
return0;}
7楼:水墨尘君
#include
voidmain()
{intm,n,r,t;
scanf("%d,%d",&m,&n);
if(m
如果有疑问
,欢迎私聊我
c语言程序设计如何求最大公约数?
8楼:苏
具体操作步骤如下:
一、新建一个c语言源程序,使用visual c++6.0的软件。
二、从键盘中输入两个正整数a和b。**:printf("please input two number:\n");int a,b;scanf("%d%d",&a,&b)。
三、取两个数a,b中的较小值存放到变量n中。**:int n=a;if (n>b)n=b。
四、从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数。第一个找到的整数即整数a和b的最大公约数。
五、点击工具栏的如图图标,对源程序编译运行。
六、测试输入4,6,得到最大公约数2。程序是正确的,以测试更多的数。
七、上面面步骤是编程的思路,给出完整**,方便复制使用。#includevoid main()}}。
9楼:河蟹蛇荟
最大公约数算法:
(1)辗转相除法
两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数,结束③ 若c≠0,则a=b,b=c,再回去执行①(2)相减法
两整数a和b:
① 若a>b,则a=a-b
② 若a③ 若a=b,则a(或b)即为两数的最大公约数,结束④ 若a≠b,则再回去执行①
(3)穷举法:
① i= a b中的小数
② 若a,b能同时被i整除,则i即为最大公约数,结束③ i--,再回去执行②
c语言编程-求最大公约数
10楼:匿名用户
把倒数第三句“i=i+1”去掉就可以得到正确的结果了,因为break之后不会执行i--操作了
或者使用辗转相除的方法:
#include
void main()
temp = a%b;
while(temp)
printf("%d,%d的最大公约数为: %d",m,n,b);
printf("%d,%d的最小公倍数为: %d",m,n,m*n/b);}
11楼:静枫缘
//辗转相除法是古希腊求两个正整数的最大公约数的,也叫欧几里德算法,其方法是用较大的数除以较小的数,上面较小的除数和得出的余数构成新的一对数,继续做上面的除法,直到出现能够整除的两个数,其中较小的数(即除数)就是最大公约数。以求288和123的最大公约数为例,操作如下:288÷123=2余42 123÷42=2余3942÷39=1余3 39÷3=13所以3就是288和123的最大公约数。
//#include
int main()
printf("%d\n",c);
return 0;
12楼:星月小木木
求最大公约数算法:
(1)辗转相除法
两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数,结束③ 若c≠0,则a=b,b=c,再回去执行①(2)相减法
两整数a和b:
① 若a>b,则a=a-b
② 若a
int xc_***(int a,int b)return b;
}int xj_***(int a,int b)return b;
}int qj_***(int a,int b)void main()
13楼:匿名用户
求差判定法.
如果两个数相差不大,可以用大数减去小数,所得的差与小数的最大公约数就是原来两个数的最大公约数.例如:求78和60的最大公约数.78-60=18,18和60的最大公约数是6,所以78和60的最大公约数是6.
如果两个数相差较大,可以用大数减去小数的若干倍,一直减到差比小数小为止,差和小数的最大公约数就是原来两数的最大公约数.例如:求92和16的最大公约数.92-16=76,76-16=60,60-16=44,44-16=28,28-16=12,12和16的最大公约数是4,所以92和16的最大公约数就是4.
辗转相除法.
当两个数都较大时,采用辗转相除法比较方便.其方法是:
以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数.
例如:求4453和5767的最大公约数时,可作如下除法.
5767÷4453=1余1314
4453÷1314=3余511
1314÷511=2余292
511÷292=1余219
292÷219=1余73
219÷73=3
于是得知,5767和4453的最大公约数是73.
辗转相除法适用比较广,比短除法要好得多,它能保证求出任意两个数的最大公约数.
小学数学温习过后,先来个两个数递归版的
int get***rec(int n, int m)
if (n == 0)
return m;
else
return get***rec(n, m % n);
}辗转相除法,求一个数组中所有数的最大公约数
int get***(int *arr, int len)
iremainder = imax % icurr;
while (iremainder)
imax = icurr;
}//for
return imax;
}最小公倍数就是乘积除以最大公约数
int getlcm(int *arr, int len)
14楼:匿名用户
基本原理如下:
用欧几里德算法(辗转相除法)求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0。
1515和600的最大公约数是15。
15楼:匿名用户
辗转相除法还是首选的方法啊、它有效的减少了运算的时间复杂度。。
16楼:小童鞋_成
ddddddddddddddd
17楼:
int getcd(int u,int v)
return u;}
18楼:凌风
#include
void main()
{int m,n,k;
printf(
c语言编程求最大公约数和最小公倍数
19楼:刀无极啊
#include
int main()
else
res=dividend%divisor;
while(res!=0)//循环体是三条语句dao,不加大括号内循环只执行一条容语句
printf("%d",divisor);
}else
printf("error!\n");
return 0;
}两数相乘除以最大公约数就是最小公倍数
20楼:爱笑的
你用while,res没有!=0,后赋值,但是没退出循环啊,你这个成死循环了
21楼:滕鸿蒙飞跃
#include
intgcm(int
m,int
n)if(r==0)
returnn;}
intlcm(int
m,int
n,int
p)main()
22楼:睢奇姒乾
intm,n,i,j;
注意int型整数的取值范围,上限大概是6万多,
100000显然溢出,结果就不对了,可以考虑换成long、double型等修饰
23楼:亓囡亥德寿
a=b;
b=c;
c=a%b; //这个位置写错了,当上面的b=c=0时,这里会除0错将这个放到a=b前面就ok了
c语言编程求输入两个数的最大公约数和最小公倍数,怎么做?
24楼:馅喽喽喽
输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数 算法描述:m对n求余为a,若a不等于0 则 m 0)
m1=m;
n1=n;
while(n!=0)
printf("%d和%d的最大公约数是:%d\n",m1,n1,m);
printf("最小公倍数是:%d\n",m1*n1/m);
}输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数 算法描述:m对n求余为a,若a不等于0 则 m 0)
{m_cup = m;
c语言编程:输入两个正整数,求最大公约数和最小公倍数
25楼:匿名用户
1、新建一个
工程来和.c文件 ,输入头文件和源主函数。
2、定义变量类型。
3、接下来需要输入a和b。
4、用一个if 语句去判断这两个数是否大于1。
5、用while 语句去求得最大公倍数和最小公约数。
6、输出最大公约数和最小公倍数。
7、编译,运行得到最后的结果。
26楼:凌乱心扉
#include
int main()
p=n*m;
while(m!=0)
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公约数为:%d\n",p/n);
return 0;}方法
二、//穷举法解两个数的最大公约数和最小公倍数void exp(int num1,int num2)
用欧几里得算法(辗转相除法)求最大公约数,C语言编程
1楼 猴大侠来也 你的程序是正确的, 瑕疵在于 scanf d d m n scanf函数,双引号内光写格式就好了,不用写逗号什么的,多写什么程序运行的时候就要输入什么。如你所写,运行时就应输入 12,24 若你在12与24之间按的是空格或其他有可能影响到第二个变量取不到值。 所以建议改为 scan...
最大公约数和最小公倍数是干什么用的
1楼 朱泛 公约数和公倍数是比较基础的,实际生活直接应用较少。数学作为一个基础学科应用性不是很强。但是它作为基础是非常重要的,比如数论这个学科,计算机应用中很常见,数论可应用在设置密码和破解密码。 还有常说的微积分,是很多学科的必修科目 2楼 匿名用户 如果有一个自然数a能被自然数b整除,则称a为b...