题目描述
给你2个正整数x和y(均不大于1000),计算出x和y的最大公约数和最小公倍数
输入
多组测试数据,每组输入2个整数x和y
输出
对于每组数据输出一行,分别是最大公约数和最小公倍数,中间用空格隔开
样例输入
12 18 3 9
样例输出
6 36 3 9
#include<stdio.h>
int main(){
int x,y,x1,y1;
while(scanf("%d%d",&x,&y)!=EOF){
if(x>y){
int t;
t=x;
x=y;
y=t;
}
x1=x;
while(x>0){
if(x1%x==0&&y%x==0){
printf("%d ",x);
break;
}
x--;
}
y1=y;
while(1){
if(y%y1==0&&y%x1==0){
printf("%d\n",y);
break;
}
y++;
}
}
return 0;
}
这是一个C语言程序,用于读取两个正整数x和y,并计算它们的最大公约数(GCD)和最小公倍数(LCM)。程序首先交换两个数以确保x小于或等于y,然后通过迭代找到x和y的公约数,直到找到最大的公约数。接着,通过最大公约数计算最小公倍数。对于给定的输入样例1218和39,程序输出636为最大公约数,39为最小公倍数。

6432

被折叠的 条评论
为什么被折叠?



