刘飞


私信TA

用户名:213080271

访问量:457

签 名:

救救我!!!

等  级
排  名 5905
经  验 1417
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 成都锦城学院
专  业 智能科学与技术

  自我简介:

解题思路:

输入两个数,其最大公约数一定比这两个书当中小的那个数小,可以使用条件运算符,选择其中小的那个,将这个数递减,当两个数对这个数取余数都为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分

1 人评分

  评论区