C语言编程–输入两个数求最小公约数和最大公倍数
- 题目1:输入两个数,求最小公约数和最大公倍数。
//输入:
15 6
//输出:
3 30
思路分析:
1.最小公约数:考虑两个数的大小问题。有可能大数刚好是小数的倍数,也可能不是。所以需从小数开始,通过三元运算获取到小数,定义变量i,循环查找x和y都能求模为0的最大公因数。
2.最小公倍数:考虑一个数从1开始乘积,判断乘积对另一个数求模是否为0。
#include <stdio.h>
int max1(int ,int );//声明函数max1()
int min1(int ,int );//声明函数min1()
//函数在main函数的后面时需要进行声明
int main()
{
int x;
int y;
scanf("%d%d",&x,&y);
max1(x,y);
min1(x,y);
return 0;
}
int max1(int x,int y)
{
int num = x<y?x:y;//求较小的数
//printf("%d",num);(做判断,仅作验证)
for(int i = num;i>0;i--)
{
if((x%i==0)&&(y%i==0))
{
printf("%d ",i);
return 0;//退出循环法1
//退出循环法2
//break;
}
}
return 0;
}
int min1(int x,int y)
{
for(int i = 1;i<=y;i++)
{
if(x*i%y==0)
{
printf("%d",x*i);
return 0;//退出所有的循环
//退出循环法2
//break;
}
}
return 0;
}
测试结果:
12 17
1 204
15 6
3 30
21 17
1 357