解题思路:

输入两个数,其最大公约数一定比这两个书当中小的那个数小,可以使用条件运算符,选择其中小的那个,将这个数递减,当两个数对这个数取余数都为0时,则这个数就为他们的最大公约数,就可以终止递减循环。

例如:

8与24

选出小的那个

为8

对两数取余


7654
8!=0!=0!=0==0
24!=0!=0!=0==0
所以最大公倍数为4

最小公倍数=两数相乘/最大公约数。

注意事项:

注意break终止。

参考代码:


#include<stdio.h>

int maxdivisor(int a,int b)

{

int i,j,max;

max=(a<b)?a:b;   //选择小的那个数

for(j=max-1;j>=0;j--)

{

if(a%j==0&&b%j==0)

{

i=j;

break;   //一定要终止,不然会运算出所有的公约数

}

}

return i;

}

int minmultiple( int a,int b)

{

int d;

d=(a*b)/maxdivisor(a,b);   //套数学公式,最小公倍数=两数相乘/最大公约数。

return d;

}

int main()

{

int a,b,c,d;

scanf("%d%d",&a,&b);

c=maxdivisor(a,b);    //最大公约数

d=minmultiple(a,b);   //最小公倍数

printf("%d %d\n",c,d);

return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论