//计算两个正整数的最大公倍数
//例如40和60的最大公约数为20.
这段C语言代码用于计算两个正整数的最大公倍数。代码逻辑如下所示:
- 首先,在程序中声明了整型变量
a
、b
、temp
和i
,用于存储输入的整数和进行临时交换和循环计数。
int a, b, temp, i;
- 使用
printf
函数提示用户输入两个整数。
printf("Input a & b: ");
- 使用
scanf
函数从用户输入读取两个整数,并将它们分别赋值给变量a
和b
。
scanf("%d %d", &a, &b);
- 使用条件语句判断
a
和b
的大小关系,如果a
小于b
,则交换它们的值,将较大的数赋给a
,较小的数赋给b
。
if (a < b) {
temp = a;
a = b;
b = temp;
}
这个步骤确保了变量a
始终存储较大的整数。
- 使用
for
循环从较小的数b
开始,递减循环变量i
,直到i
大于0为止。在每次循环中,使用条件语句判断i
是否同时是a
和b
的公约数。如果满足条件,即a
和b
都能被i
整除,那么输出这个公约数,并使用break
语句结束循环。
for (i = b; i > 0; i--) {
if (a % i == 0 && b % i == 0) {
printf("The GCD of %d and %d is: %d\n", a, b, i);
break;
}
}
最后,程序会输出计算得到的最大公约数结果。
根据你提供的示例输入40和60,程序会计算它们的最大公约数,并输出结果为The GCD of 40 and 60 is: 20
,即40和60的最大公约数为20。
//计算两个正整数的最大公倍数
//例如40和60的最大公约数为20.
#include<stdio.h>
int main()
{
int a,b,temp,i;
printf("Input a & b:");
scanf("%d%d",&a,&b);
if(a<b)
{/*交换a和b的值*/
temp=a;
a=b;
b=temp;
}
for(i=b;i>0;i--)
if(a%i==0&&b%i==0)
{/*输出满足条件的自然数并结束循环*/
printf("The GCD of %d and %d is: %d\b",a,b,i);
break;
}
return 0;
}
//输入数值:40,60
//输出结果:20.