C语言查找两个数的最大公约数程序

如何编写C语言程序来使用For循环、While循环、函数和递归查找两个数的最大公约数。

根据数学,两个或多个整数的最大公约数(GCD)是能将给定整数值整除且余数为零的最大正整数。例如,C语言中两个数,即整数8和12的最大公约数是4,因为8和12都能被1、2和4整除(余数为0),而在因子1、2和4中最大的正整数是4。

最大公约数(GCD)也称为最高公因子(HCF)、最大公因子(GCF)、最高公约数(HCD)或最大公约数(GCM)。

C语言使用For循环查找两个数最大公约数的程序

这个两个数最大公约数的程序允许用户输入两个正整数值。然后,我们将计算这两个值的最高公因子。接下来,使用For循环,它将计算GCD。要找到最大公约数,我们至少需要提供一个非零值。

#include <stdio.h>

int main()
{
    int Num1, Num2, i, GCD;

    printf("Please Enter two integer Values \n");
    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 %d and %d is = %d", Num1, Num2, GCD);
    return 0;
}

两个数的最高公因子输出

Please Enter two integer Values 
8
12
GCD of 8 and 12 is = 4

在此示例中,第一个编程printf语句将要求用户输入两个正整数值。

For循环将限制i值不大于用户指定的输入值。在下一行,我们使用If语句来检查Num1 % i和Num2 % i的余数是否等于零。

C语言使用While循环查找两个数最大公约数的程序

这个两个数最大公约数的程序允许用户输入两个正整数值。接下来,我们将使用While循环计算这两个值的最大公约数。

#include <stdio.h>

int main()
{
    int Num1, Num2, Temp, GCD;

    printf("Please Enter two integer Values \n");
    scanf("%d %d", &Num1, &Num2);

    while (Num2 != 0) {
 	Temp = Num2;
 	Num2 = Num1 % Num2;
 	Num1 = Temp;
    }
    GCD = Num1;
    printf("GCD = %d", GCD);
    return 0;
}
C Program to find GCD of Two Numbers 2

在此程序中,在while循环中,我们检查第二个值是否不等于零。如果等于零,它将退出while循环。否则,它将开始执行while循环内的语句。

C语言在不使用临时变量的情况下查找两个数最大公约数的程序

这个gcd程序允许您输入两个正整数值。接下来,我们将计算这两个值的最大公约数,而无需使用临时变量。

#include <stdio.h>

int main()
{
    int Num1, Num2, GCD;

    printf("Please Enter two integer Values \n");
    scanf("%d %d", &Num1, &Num2);

	if (Num1 == 0) {
  		printf("GCD = %d", Num2);
  	}

 	while (Num2 != 0) {
    	if (Num1 > Num2) {
      		Num1 = Num1 - Num2;
    }
    	else {
      		Num2 = Num2 - Num1;
    	}
  	}
  	GCD = Num1;
    printf("GCD = %d", GCD);
    return 0;
}

两个数的最高公因子输出

Please Enter two integer Values 
75
255
GCD = 15

C语言使用函数查找两个数最大公约数的程序

这个两个数最大公约数的程序允许用户输入两个正整数值。接下来,我们将使用函数计算这两个值的最大公约数。

#include <stdio.h>
long gcd(long x, long y);

int main()
{
    int Num1, Num2;

    printf("Please Enter two integer Values \n");
    scanf("%d %d", &Num1, &Num2);

    printf("GCD of %d and %d is = %d", Num1, Num2, 	gcd(Num1, Num2));
    return 0;
}
long gcd(long x, long y) 
{
	if (x == 0) {
  		return y;
  	}
 	while (y != 0) {
    	if (x > y) {
      		x = x - y;
    }
    	else {
      		y = y - x;
    	}
  	}
  	return x;
}
Please Enter two integer Values 
75
1575
GCD of 75 and 1575 is = 75

C语言使用递归查找两个数最大公约数的程序

这个C语言两个数最大公约数的程序允许用户输入两个正整数值。接下来,我们将通过递归调用函数来计算这两个值的最大公约数。有关更多信息,请参考递归

#include <stdio.h>
long gcd(long x, long y);
int main()
{
    int Num1, Num2;

    printf("Please Enter two integer Values \n");
    scanf("%d %d", &Num1, &Num2);

    printf("GCD of %d and %d is = %d", Num1, Num2, gcd(Num1, Num2));
    return 0;
}
long gcd(long x, long y) 
{
  if (y == 0) {
  	return x;
  }
  else {
    return gcd(y, x % y);
  }
}
Please Enter two integer Values 
81
153
GCD of 81 and 153 is = 9

在这个C语言的两个数最大公约数示例中,当编译器到达main()程序中的long gcd(long x, long y)行时,编译器将立即跳转到下面的函数

long gcd(long x, long y) {

在上面指定的函数中,return gcd(y, x % y)语句将帮助程序递归调用具有更新值的函数。如果您在两个数最大公约数的程序中遗漏了此语句,在完成第一行后,程序将终止。

让我们看一下gcd程序中的If条件。这里,if (y == 0)将检查该数字是否等于0。对于递归函数,在使用函数递归调用之前放置一个条件非常重要。否则,我们将陷入无限执行(与无限循环相同)。请注意 :)

评论已关闭。