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 12GCD 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 48GCD of two numbers is:24
以上是 C语言用while循环求两个数的GCD 的全部内容, 来源链接: utcz.com/z/357343.html