您的位置:首页 > 编程语言 > C语言/C++

求最大公约数和最小公倍数-C语言

2016-10-31 17:02 721 查看
本题为中国mooc课堂北京理工大学课程C语言程序设计(下)第一单元的课后测试题1

题目内容:

编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求 a 和 b的最大公约数和最小公倍数,在主函数中输出结果。

输入格式:

两个正整数

输出格式:

最大公约数和最小公倍数

输入样例:

12,40[回车]

输出样例:

最大公约数:4[回车]

最小公倍数:120[回车]
#include <stdio.h>
int main()
{
int fun1(int,int);
int fun2(int,int);
int a,b,d,m;
scanf("%d,%d",&a,&b);
d=fun1(a,b);
m=fun2(a,b);
printf("最大公约数:%d\n最小公倍数:%d\n",d,m);
}

int fun1(int a,int b)//求最大公约数函数
{
int i,min;
min=a<b?a:b;//当a、b均可将i除尽时,且i从二者值小者向下递减,因此为最大公约数
for(i=min;i>=1;i--)
{
if((a%i==0)&&(b%i==0))
return i;
}
}
int fun2(int a,int b)//求最小公倍数
{
int j,max;
max=a>b?a:b;
for(j=max;;j++)//当a、b均可被j除尽时,且j从二者值大者向上递增,因此为最小公倍数
{
if((j%a==0)&&(j%b==0))
return j;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: