流心
发布于 2024-06-07 / 0 阅读
0

最大公约数

#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;
}
  • 变量声明

    • 声明了三个整型变量 ab 用于存储用户输入的两个整数,min 用于存储较小的整数。

  • 输入

    • 使用 scanf_s 函数从标准输入读取两个整数。注意:scanf_s 是一个安全的输入函数,主要用于 Microsoft Visual Studio 中。如果使用其他编译器,推荐使用 scanf

  • 确定较小的数

    • 判断 ab 的大小,将较大的数赋值给 min

  • 最大公约数计算

    • 声明 ret 用于存储当前找到的最大公约数。

    • 使用一个 for 循环从 1 遍历到 min 之前的所有整数,判断这些整数是否是 ab 的公约数。

    • 每次找到一个公约数 i,就将其赋值给 ret,这意味着最终 ret 会存储最后一个找到的公约数,但不一定是最大公约数。

  • 输出

    • printf("%d和%d的最大公约数是%d.\n", a, b, min);