第一种(for循环)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, min, k, a, b;
printf("请输入两个整数:\n");
scanf("%d%d", &a, &b);
if (a>b)//此处if else语句可以删除(只是为了少执行几步程序)
min = b;
else
min = a;
for (i = min; i>0; i--)//如果删了上面的if else这要改为i=a或b
{
if ((a%i == 0) && (b%i == 0))//判断两个同时取余为0
{
k = i;
printf("%d", k); break;
}
}
return 0;
}
第二种方法(辗转相除法)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int tmp, a, b;
printf("请输入两个整数:\n");
scanf("%d%d", &a, &b);
while (a%b != 0)
{
tmp=a%b;//取余
a = b;//交换a,b可避免a比b小
b = tmp;
}
printf("%d\n",b);
return 0;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。