首页 > 其他分享 >求两个数最大公约数

求两个数最大公约数

时间:2023-06-14 18:13:26浏览次数:39  
标签:两个 int else 最大公约数 公约数 printf include

公约数,亦称"公因数"。它是指能同时整除几个整数的数。如果一个整数同时是几个整数的约数,称这个整数为它们的"公约数";公约数中最大的称为最大公约数。

例如 :4的倍数有 1,2,4;6的倍数有1,2,3,6,那么4和6的约数就是1,2,则最大公约数就是2.

求解思路:

求最大公约数可以使用欧几里得算法,也称辗转相除法。该算法的基本思想是用较大数除以较小数,然后用余数去除除数,再用上一次的除数去除上一次的余数,如此反复,直到余数为零时,当前除数即为最大公约数。

 1 #pragma warning(disable:4996)
 2 #include<stdio.h>
 3 int a = 0, b = 0, c = 0;
 4 int main() {
 5     printf("输入两个数\n");
 6     
 7     scanf("%d%d", &a, &b);
 8     while (a!=b)
 9     {
10         if (a>b)
11         {
12             a = a - b;
13         }
14         else
15         {
16             c=a;
17             a=b;
18             b=c;
19         }
20     }
21     printf("最大公约数是:%d", a);
22     return 0;
23 }

 解法二

#pragma warning(disable:4996)
#include<stdio.h>
#include<stdbool.h>
int main() {
    int a = 0, b = 0;
    int v = 0;
    scanf("%d %d", &a, &b);
    do
    {
        if (a > b) {
            if (a != 0 && b !=0)
            {
                a = a % b;
                printf("a的%d\n", a);
                printf("b的%d\n", b);
                if (a == 1)
                {
                    printf("最大公约数是%d\n", a);
                    break;
                }
            }
            else
            {
                printf("最大公约数是%d\n", a);
                break;
            }
        }
        else
        {
            v = a;
            a = b;
            b = v;
        }
    } while (true);
    return 0;
}

 

标签:两个,int,else,最大公约数,公约数,printf,include
From: https://www.cnblogs.com/tkmi/p/17479919.html

相关文章