输入两个数,求最大公约数和最小公倍数。(辗转相除法和普通方法)
//普通方法
int num1 = 0;
int num2 = 0;
scanf("%d,%d", &num1,&num2);
int min = num1 < num2 ? num1 : num2;
int max = num1 > num2 ? num1 : num2;
int gb;
int gy;
for (gy = min; gy > 0; gy--) {
if (num1 % gy == 0 && num2 % gy == 0){
printf("最大公约数是:%d",gy);
break;
}
}
for (gb = max; gb <= num1 * num2; gb++) {
if (gb % num1 == 0 && gb % num2 == 0) {
printf("最小公倍数是:%d",gb);
break;
}
}
//辗转相除法一:(for)
int num1 = 0;
int num2 = 0;
scanf("%d,%d", &num1,&num2);
int min = num1 < num2 ? num1 : num2;
int max = num1 > num2 ? num1 : num2;
int sum = max * min;
int i;
for(i = max % min; i != 0; i = i % min){
min = min % i;
}
printf("最大公约数是%d", min);
printf("最小公倍数是%d", sum/min);
//辗转相除法二:(while)
int num1 = 0;
int num2 = 0;
scanf("%d,%d", &num1,&num2);
int min = num1 < num2 ? num1 : num2;
int max = num1 > num2 ? num1 : num2;
int i = max % min;
int sum = max * min;
while (i != 0) {
min = min % i;
i = i % min;
}
printf("最大公约数是%d", min);
printf("最小公倍数是%d", sum/min);