c语言求最大公约数用函数 c语言四种方法求最大公约数

c语言如何求最大公约数和最小公倍数#include stdio.h
int main()
{
int a,b,c,m,t;
printf("请输入两个数:\n");
scanf("%d%d",a,b);
if(ab)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公约数是:\n%d\n",b);
printf("最小公倍数是:\n%d\n",m/b);
}
扩展资料
算法思想
利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换 。
再利用辗转相除法求出最大公约数,进而求出最小公倍数 。最后用格式输出语句将其输出 。
#includestdio.h是在程序编译之前要处理的内容,称为编译预处理命令 。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以是c语言的程序语句 。
C语言 ,求最大公约数,用函数 。。//注意:测试时输入的两个数用逗号分隔,如:
12,18
#includestdio.h
int
main()
{
int
a,b,h;
int
max(int
m,int
n);
printf("输入两个数:\n");
scanf("%d,%d",a,b);
h=max(a,b);
printf("最大公约数为:%d\n",h);
getchar();
}
int
max(int
m,int
n)
{
int
temp;
temp=m%n;
while(temp)
{
m=n;
n=temp;
temp=m%n;
}
return(n);
}
用C语言求最大公约数 。1、新建一个C语言源程序,这里使用Visual C6.0的软件:
2、从键盘中输入两个正整数a和b 。取两个数a,b中的较小值存放到变量n中 。从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数,第一个找到的整数即整数a和b的最大公约数,最后将找到的结果输出即可完成程序的编写:
3、对源程序编译运行,测试输入4、6,得到最大公约数2说明程序是正确的 , 以上就是用c语言求最大公约数的过程:
C语言函数编写,求两个整数的最大公约数和最小公倍数编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它 。C语言实现代码如下:
#includestdio.h
#includemath.h
int fun_gy(int,int);//声明最大公约数函数
int fun_gb(int,int);//声明最小公倍数函数
main()
{
int a,b,gy,gb;
printf("输入两个整数:\n");
scanf("%d%d",a,b);
gy=fun_gy(a,b);//调用最大公约数函数
gb=fun_gb(a,b);//调用最小公倍数函数
printf("最大公约数是:%d\n最小公倍数是:%d\n",gy,gb);
}
int fun_gy(int x,int y)
{
int z,i;
if(xy)
z=sqrt(y);
else
z=sqrt(x);
for(i=z;i=1;i--)
{
if(x%i==0y%i==0)
break;
}
return i;
}
int fun_gb(int x,int y)
{
int z,i;
z=x*y;
for(i=x;i=z;i)
{
if(i%x==0i%y==0)
break;
}
return i;
}
程序运行结果:
扩展资料:
这里涉及到了最大公约数和最小公倍数的计算方法:
我们知道两个整数的最小公倍数等于他们的乘积除以他们的最大公约数 。所以关键还是最大公约数的计算 。
辗转相除法(求最大公约数):
假设求a,b的最大公约数,则:
(1)a除以b取余得c , 若c=0,则b即为两数的最大公约数,输出,结束 。
(2)若c!= 0,则将b赋给a,c赋给b再返回上一步操作 , 继续执行 。
例如,求30和98的最大公约数,过程如下:
900 = 8;
30%8 = 6;
8%6 = 2;
6%2 = 0;
所以最大公约数为2 。
C语言中求最大公约数的函数#include
"stdio.h"
int
main()
{
int
d1,d2,r;
printf("输入两个正整数:");
scanf("%d
%d",d1,d2);
do
{
r=d1?
d1=d2;d2=r;
}while(d2!=0);
printf("最大公约数是:%d",d1);
}
//递归法
#include
"stdio.h"
int
fun(int
d1,int
d2)
{
if(d2!=0)
return
fun(d2,d1?;
else
return
d1;
}
int
main()
{
int
d1,d2;
printf("输入两个正整数:");
scanf("%d
%d",d1,d2);
printf("最大公约数是:%d",fun(d1,d2));
}
C语言中 用函数调用求最大公约数和最小公倍数#includestdio.h
int gcd(int m, int n);
int lcd(int m, int n);
int main()
{
int a, b;
printf("输入两个正整数:");
scanf("%d%d", a, b);
printf("%d 和 %d 最大公约数为%d\n", a, b, gcd(a, b));
printf("最小公倍数为:%d\n", lcd(a, b));
}
int gcd(int m, int n)
{
int t;
if (mn)
{
t = m;
m = n;
n = t;
}
while (n != 0)
{
t = m%n;
m = n;
n = t;
}
return m;
}
int lcd(int m, int n)
{
int t;
t = m*n / gcd(m, n);
return t;
}
【c语言求最大公约数用函数 c语言四种方法求最大公约数】c语言求最大公约数用函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言四种方法求最大公约数、c语言求最大公约数用函数的信息别忘了在本站进行查找喔 。

    推荐阅读