c语言输入两个数求最大公约数(用C语言写求两个数最大公约数)

本文目录
用C语言写求两个数最大公约数
#include《stdio.h》
int main()
{
int n,a,b,c;
printf("请输入两个整数(逗号隔开):");
scanf("%d,%d",&a,&b);
n=b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("\n最大公约数是:%d\n",b);
return 0;
}
编写一个c语言程序 求两个整数的最大公约数
下面给出一个使用C语言实现求两个整数的最大公约数的示例代码:
```c
#include 《stdio.h》
int gcd(int a, int b);
int main() {
int a, b, result;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
result = gcd(a, b);
printf("两个数的最大公约数为:%d", result);
return 0;
}
int gcd(int a, int b) {
if (a % b == 0) {
return b;
}
return gcd(b, a % b);
}
```
在上面的代码中,我们定义了一个`gcd`函数来求两个整数的最大公约数。`gcd`函数使用递归方式来实现辗转相除法求最大公约数。如果a能被b整除,则b就是两个整数的最大公约数。否则,我们就不断将b作为a,将a%b作为b,不断递归求解,直到b能够整除a。
在主函数中,我们首先使用`scanf`函数来读入两个整数,然后用`gcd`函数来求它们的最大公约数,最后输出结果。
需要注意的是,上面的代码中没有对输入的数据进行异常处理。如果用户输入的不是整数类型,程序可能会出现错误。因此,为了保证程序的健壮性,我们还需要添加一些异常处理代码来防止这种情况发生。
.从键盘输入两个整数,求出它们的最大公约数,用C语言程序编写一下,谢谢了!
#include
void
main()
{
int
m,n,x1,x2,a,b,c;
x1=1;x2=1;
printf("请输入m,n:");
scanf("%d,%d",&m,&n);
c=(m》n)?m:n;
while(x1《=c)
{
if(m%x1==0&&n%x1==0)
{a=x1;}
x1++;
}
if(a!=1)
{
while(m*x2%n!=0)
{x2++;}
b=m*x2;
}
else
b=m*n;
printf("拦滑最大公约数此衡察为%d\n最小公倍森茄数为%d\n",a,b);
}
c语言求两个数的最大公约数
思路:求两个数的最大公约数使用辗转相除法。
辗转相除法,
又名欧几里德算法(Euclidean
algorithm)乃求两个正整数之最大公因子的算法。原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。
参考代码:
#include 《stdio.h》
int main()
{
int x,y,z;
scanf("%d%d",&x,&y);
while(x!=0)
{
z=x%y;
x=y;
y=z;
}
printf("%d\n",z);
return 0;
}
/*
运行结果:
6 27
3
*/

更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20





