小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-11-14 / 3 阅读
0
0

C语言编写找出两个数的最大公约数

找出两个数的最大公约数

思路:

要知道某两个数的最大公约数首先要知道公约数是什么

以下内容来自维基百科

最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个非零整数的最大正整数。例如8和12的最大公因数为4。

可能还是不理解让我们看看下面的例子

54和24的最大公因数是多少?

数字54可以表示为几组不同正整数的乘积:

{\displaystyle 54=1\times 54=2\times 27=3\times 18=6\times 9}

故54的正约数为1,2,3,6,9,18,27,54

同样地,24可以表示为:

{\displaystyle 24=1\times 24=2\times 12=3\times 8=4\times 6}

故24的正约数为1,2,3,4,6,8,12,24

这两组数列中的共同元素即为54和24的公因数

1,2,3,6{\displaystyle 1,2,3,6}

其中的最大数6即为54和24的最大公约数,记为:

gcd(54,24)=6{\displaystyle \gcd(54,24)=6}


通过上面介绍我们已经知道了以下特征

1.公因数都是整数(即相除没有余数)

2.公因数可以被两个数共同相除

3.“因数”最大为它本身和1.列如27:1和27

故紧靠这两条特征可编写出如下程序

#include<stdio.h>
int main(){
    int a,b,z,p=0;
    printf("请输入两个整数");
   //接受用户输入的两个整数
    scanf("%d%d",&a,&b);
  //通过for循环遍历
    for(int i=1;i<=a;i++){
   //通过if判断要满足“公因数可以被两个数共同相除”
       if(a%i==0 && b%i==0){
        z=i;
       }
  //判断是否大于默认值p(即仅保留最大值即为最大公因数)
       if(z>p){
        p=z;
       }

    }
  //打印输出最大值p
    printf("%d",p);
    return 0;   
}


评论