您的位置:首页 > 编程语言 > C语言/C++

【C语言】求两个数的最大公约数

2016-10-01 15:32 211 查看
求两个数的最大公约数,我们首先想到的是,创建一个中间变量,让两个数改变,直到最后不能模后,则可求出来最大公约数:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0, b = 0;
int tmp = 0;
printf("请输入两个数:\n");
scanf("%d %d", &a, &b);
while (a != 0)
{
tmp = b%a;
b = a;
a = tmp;
}
printf("%d\n", b);
return 0;
}

但是 时我们还有另外 一种辗转相除的方法来求最大公约数:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0, b = 0;
int c = 0;
printf("请输入两个数:\n");
scanf("%d %d", &a, &b);
while (a*b != 0)
{
if (a > b)
{
a = a%b;
}
else
{
b = b%a;
}
}
if (a == 0)
{
c = b;
}
else
{
c = a;
}
printf("%d\n", c);
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  两个数 最大 公约数