【C语言】求两个整数的最大公约数

  • Post author:
  • Post category:其他




欢迎来到南方有乔木的博客!!!




博主主页:





点击点击!戳一戳!!





博主名:

南方有乔木呀



博主简介:


一名在校大学生,正在努力学习Java语言编程。

穷且意坚,不坠青云之志

,希望能在编程的世界里找到属于自己的光。



跪谢帅气or美丽的朋友们能够帮我点赞! 请对文中内容请多多指教!!!

40b20882f0e44752b5a0b3f4765d6a1b.gif

问题:求两个整数的最大公约数


解题思路:

首先,我们先来复习一下什么是最大公约数。



最大公约数:两个或多个整数中共有约数中最大的一个。

在这里我们只求两个整数里的最大公约数,举个例子:

比如6和12,它们都能够被1,2,3,6整除,它们的相同的公约数里有1,2,3,6,它们最大公约数就是6.

它的核心思想主要是:求两个整数里同时能够被这两个数整除的数的最大值。(比如6和12,6是这两个整数同时能够整除的最大值)

求两个数的最大公约数思路主要分为:



1.求两个整数里的较小值


(比如变量a=6和变量b=12,先求出这两个整数里较小的值为变量a=6)



2.让一个数满足同时能够被两个整数整除,然后求出它的最大值


。这个最大值小于或等于整数里的较小值。(比如6和12,它们的最大公约数为6,满足小于或等于6),


满足条件打印一次后跳出循环。

实现代码如下代码:

#include <stdio.h>

  int main()
  {
      int a; b;i,min;
      printf("请输入两个整数:");
      scanf("%d%d",&a,&b);
      if(a>b)
      {
        min=b;//先求出两个整数里的较小值
      }

      else{
        min=a;
      }
      for(i=min;i>1;i--)//从两个整数里的较小值开始遍历,注意i由大到小用i--
      {
          if(a%i==0&&b%i==0)//如果两个整数同时被整除则打印输出
          {
              printf("最大公约数;%d",i);
              break;//打印一次后记得跳出循环

          }
      }
      system("pause");
      return 0;

  }

具体运行结果如下:

ed3f21d6f7f9435a8df96faa694b2b8a.png



版权声明:本文为m0_59176913原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。