PTA 7-170 公约数与公倍数
分数 10
作者 wjl
单位 赤峰学院
输入两个正整数,输出它们的最大公约数和最小公倍数。
输入格式:
在一行中给出2个正整数。
输出格式:
分别输出最大公约数和最小公倍数,中间一个空格隔开。
输入样例:
在这里给出一组输入。例如:
24 36
输出样例:
在这里给出相应的输出。例如:
12 72
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
int main(){
//两个数最大公约数与最小公倍数的关系:m * n = min * max
int m, n; //定义两个整数
int min, max; //定义最小公倍数min, 最大公约数max
int minNumb, maxNumb; //较小的数和较大的数
scanf("%d %d", &m, &n);
minNumb = m < n ? m : n; //找出较小的数
maxNumb = m > n ? m : n; //找出较大的数
for(int i = 1; i <= minNumb; i++){ //循环1到较小数范围内的数
if(maxNumb % i == 0 && minNumb % i == 0){ //能被同时整除
max = i; //最大公约数
}
}
min = m * n / max; //最小公倍数
printf("%d %d", max, min); //输出最大公因数和最小公倍数
return 0;
}
解题思路:
step1:找出两个数间较大和较小的数
step2:循环1到较小的数范围内的数找出最大公因数
step3:根据两个数最小公倍数和最大公因数的关系求出最小公倍数
归属知识点:
循环结构
条件判断