C语言题目:写一个求最大公约数和最小公倍数的函数。并调用函数。

如题所述

第1个回答  2011-06-16
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
int gys(int a,int b);
int gbs(int a,int b);
printf("最大公约数=%d",gys(a,b));
printf("最小公倍数=%d",gbs(a,b));
}

int gys(int a,int b)
{
int gys,i;
for(i=1;i<=a&&i<=b;i++)
if(a%i==0&&b%i==0)
gys=i;
return(gys);
}

int gbs(int a,int b)
{
int gbs;
gbs=a*b/gys(a,b);
return(gbs);
}本回答被提问者采纳
第2个回答  2011-06-16
int gcd(int a, int b)
{
int m = a>b?a:b;
int n = a>b?b:a;
if(m%n==0) return n;
else return gcd(n,m%n);
}

int lcm(int a, int b)
{
return a/gcd(a,b)*b;
}

调用自己试试吧
第3个回答  2011-06-17
求最大公约数最直接的办法是从两数中较小数与2之间的所有整数中一个一个的找。
但这个方法有点浪费。
有两种有名的方法:
1.辗转相除法
2.更相减损之术
这两种方法比较有名,而且现在人教版的高中数学中已经介绍了这两种方法。
下面这个是第2个,因为它只需要加减法就可以,效率高。
int MaxFactor(unsigned int a,unsigned int b)
{
while(a!=b){
if(a>b)
{
a=a-b;
}else
{
b=b-a;
}
}
return a;
}
void main()
{
unsigned int x=MaxFactor(16,12);
}
求最小公倍数只要用 a*b/MaxFactor(a,b);本回答被网友采纳

C语言中 用函数调用求最大公约数和最小公倍数
\/ \/\/求最大公约数和最小公倍数 \/\/递归求最小公倍数 int f(int m,int n){ return (n >0)? f(m,m%n):m;} \/ int main(void){ int m,n,a;int f(int m,int n);printf("please input two numbles:");scanf("%d,%d",&m,&n);printf("the max is %d\\n",f(m,n));\/...

C语言:求最大公约数和最小公倍数
include <stdio.h> int main(){ int m, n;int m_cup, n_cup, res; \/*被除数, 除数, 余数*\/ printf("Enter two integer:\\n");scanf("%d %d", &m, &n);if (m > 0 && n >0){ m_cup = m;n_cup = n;res = m_cup % n_cup;while (res != 0){ m_cup = n_cup...

C语言中如何调用函数求最大公约数和最小公倍数
include<stdio.h> int a;int _Y(int x,int y);int main(){ int a,b,c,d;printf(“请输入数字:”);scanf("%d,%d",&c,&d);\/\/此处注意在输出的时候数字之间要打都好,不然输出结果错误 b=_Y(c,d);a=c*d\/b;printf(“最大公约数为:%d\\n”,b);printf(“最小公倍数为:%d\\n...

编写一个求最大公约数的函数,并编写调用这个求最大公约数函数的程序...
如果两个自然数是互质数,那么它们的最大公约数是1,最小公倍数是这两个数的乘积。例如8和9,它们是互质数,所以(8,9)=1,[8,9]=72。如图所示:如果两个自然数中,较大数是较小数的倍数,那么较小数就是这两个数的最大公约数,较大数就是这两个数的最小公倍数。例如18与3,18÷3=...

c语言求最大公约数和最小公倍数编程c语言求最大公约数
c语言求最大公约数和最小公倍数编程,c语言求最大公约数很多朋友还不知道,现在让我们一起看看吧!1、代码如下:2、#include 3、int main()4、{ 5、int i,a,b,t;6、scanf(%d%d,&a,&b);\/\/输入数a,b 7、if(a>b)\/\/比较a,b大小,如果a>b则交换,结果为a= 2; i--)\/\/以较小的...

C语言函数编写,求两个整数的最大公约数和最小公倍数
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:include<stdio.h> include<math.h> int fun_gy(int,int); \/\/声明最大公约数函数 int fun_gb(int,int); \/\/声明最小公倍数函数 main(){ int a,b,gy,gb;printf("输入两个...

C语言中求最大公约数和最小公倍数怎么求
最大公约数:include <stdio.h> int g(int m,int n){ while(m!=n){ if(m>n)m=m-n;else n=n-m;} return m;} int main(){ int m,n,a,i;for(i=0;i<50;i++){ scanf("%d%d",&m,&n);a=g(m,n);printf("%d\\n",a);} fflush(stdin);getchar();} 最小公倍数 a...

C语言——求最大公约数和最小公倍数的简单程序
本文讲解一下利用C语言求两个数字的最大公约数以及最小公倍数的方法。首先打开编译器,这里用的是VC++6.0,然后新建工程,选择下方的控制台应用程序,也就是“win32 console application”。然后新建一个文件,选择“C++ source file”,然后输入文件名,点击确定。接着输入如图所示的代码,注意检查看有...

C语言中用两个函数求最大公约数和最小公倍数,用主函数调用这两个函数...
先编写好最大公约数和最小公倍数的函数,如下:intgcd(inta,b)\/\/求最大公约数函数{if(a%b==0)returnb;elsereturngcd(b,a%b);\/\/辗转相除法}intlcm(inta,b)\/\/求最小公约数函数{intx;x:=gcd(a,b);\/\/调用gcd()函数returna

[C语言]编程:输入两个正整数,求其最大公约数和最小公倍数
int main(){ int m, n;int gcd, lcm;scanf("%d%d", &m, &n);gcd = m < n ? m : n;lcm = m > n ? m : n;do { if(m % gcd == 0 && n%gcd==0)break;gcd--;}while(1);do { if(lcm % m == 0 && lcm % n==0)break;lcm++;}while(1);printf("gcd=%d ...

相似回答