#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int ret = 0;
if (a > b)
{
ret = b;
}
else
{
ret = a;
}
while (1)
{
if (a % ret == 0 && b % ret == 0)
{
break;
}
ret--;
}
printf("%d\n", ret);
return 0;
}
2、代码讲解:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
//输入
scanf("%d %d", &a, &b);
//求最大公约数
//1、求a和b的较小值,假设这个较小值就是最大公约数
int ret = 0;//若最大公约数是ret
if (a > b)
{
ret = b;
}
else
{
ret = a;
}
while (1)//1为真,真就进来了
{
if (a % ret == 0 && b % ret==0)//ret把a和b都同时整除了
{
break;
}
ret--;//(如果ret不能整除a和b)否则ret就减一(一个一个地试),然后从while(1)中再进来。
}
//输出
printf("%d\n", ret);//(如果ret能整除a和b,就从break跳出来到这)
return 0;
}
//注意:最大公约数最小是1。
一、法一:(一个一个地试)1、代码实现:#include<stdio.h>int main(){ int a = 0; int b = 0; scanf("%d %d", &a, &b); int ret = 0; if (a > b) { ret = b; } else { ret = a; } while (1) { if (a % ret == 0 && b % ret == 0) { bre