#include<stdio.h>
int main()
{
int a,b;
int min;
scanf_s("%d %d", &a , &b);
min = (a < b) ? a : b;
int ret = 0;
int i;
for(i = 1; i < min; ++i){
if (a % i == 0){
if(b % i == 0){
ret = i;
}
}
}
printf("%d和%d的最大公约数是%d.\n", a , b , ret);
return 0;
}变量声明:
声明了三个整型变量
a和b用于存储用户输入的两个整数,min用于存储较小的整数。
输入:
使用
scanf_s函数从标准输入读取两个整数。注意:scanf_s是一个安全的输入函数,主要用于 Microsoft Visual Studio 中。如果使用其他编译器,推荐使用scanf。
确定较小的数:
判断
a和b的大小,将较大的数赋值给min
最大公约数计算:
声明
ret用于存储当前找到的最大公约数。使用一个
for循环从1遍历到min之前的所有整数,判断这些整数是否是a和b的公约数。每次找到一个公约数
i,就将其赋值给ret,这意味着最终ret会存储最后一个找到的公约数,但不一定是最大公约数。
输出:
printf("%d和%d的最大公约数是%d.\n", a, b, min);