C语言用while循环求两个数的GCD

问题

使用 C 编程语言生成任意两个数的最大公约数。

解决方案

让用户从控制台输入任意两个数字。对于这两个数字,让我们找到最大公约数。

两个数的 GCD 是将它们完全整除而没有余数的最大数。

我们用来找到两个数字的 GCD 的逻辑如下 -

while(b!=0) //检查 b=0 条件,因为在 a/b 中,b 不应等于零

   {

      rem=a % b;

      a=b;

      b=rem;

   }

Print a

方案一

#include<stdio.h>

int main(){

   int a,b,rem;

   printf("输入任意两个数字:");

   scanf("%d%d",&a,&b);

   while(b!=0) //检查 b=0 条件,因为在 a/b 中,b 不应等于零{

      rem=a % b;

      a=b;

      b=rem;

   }

   printf("GCD of two numbers is:%d\n",a);

   return 0;

}

输出结果
输入任意两个数字:8 12

GCD of two numbers is:4

Check: 8= 2 * 2 *2

      12= 2 * 2 * 3

The Greatest common divisor of two numbers is : 2 * 2 =4

方案二

在这个例子中,让我们使用 for 循环找到两个数字的 GCD -

#include <stdio.h>

int main(){

   int num1, num2, i, GCD;

   printf("输入两个数字: ");

   scanf("%d %d", &num1, &num2);

   for(i=1; i <= num1 && i <= num2; ++i){

      if(num1%i==0 && num2%i==0)

         GCD = i;

   }

   printf("GCD of two numbers is:%d", GCD);

   return 0;

}

输出结果
输入两个数字: 24 48

GCD of two numbers is:24

以上是 C语言用while循环求两个数的GCD 的全部内容, 来源链接: utcz.com/z/357343.html

回到顶部