0
点赞
收藏
分享

微信扫一扫

程序:辗转相除法(欧几里得算法)求最大公约数


方法一:复杂化了


#include<stdio.h>
int main()
{
int max;
int min = 0;
int num1 = 0;
int num3 = 0;
printf("输入第一个数字");
scanf_s("%d", &num1);
int num2 = 0;
printf("输入第二个数字");
scanf_s("%d", &num2);
if (num1 == num2)
{
printf("最大公约数为:%d", num1);
}
else if (num1 > num2)
{
max = num1;
min = num2;
}
else
{
max = num2;
min = num1;

}//取最大的数字
if (max % min == 0)
{
printf("最大公约数为%d", min);
}//模为0
else
{
num3 = max % min;
while (num3 != 0)
{
num3 = max % min;//取模
if (min % num3 == 0)
{
printf("最大公约数为%d", num3);
break;
}
else
{
max = min;
min = num3;

}
}
}
return 0;
}


程序:辗转相除法(欧几里得算法)求最大公约数_开发语言

方法二:

简单方法


#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int max = 0;
int min = 0;
int r = 0;//定义模
printf("输入两个不相等的数\n");
scanf_s("%d%d", &num1, &num2);
if (num1 > num2)
{
max = num1;
min = num2;
}
else
{
max = num2;
min = num1;
}
while (r = max % min)
{
max = min;
min = r;
}
printf("最大公约数为%d", min);
return 0;
}

举报

相关推荐

0 条评论