求最大公约数 和 最小公倍数 常见算法

#include <stdio.h>
int main()
{
int a,b,t,c,m,n;
scanf("%d%d",&a,&b);
m=a; n=b;


//1.辗转相除法求最大公约数
/*while(b!=0)
{
c = a%b;
a = b;
b = c;
}
printf("最大公约数: %d\n",a);//最大公约数
printf("最小公倍数: %d\n",m*n/a);//最小公倍数
*/

 

 


//2.相减法。大数减小数,直到相等为止*/
/*
while(a != b)
{
if(a>b)
a = a-b;
else
b = b-a;
}
printf("最大公约数: %d\n",a);//最大公约数 a 和 b相等
printf("最小公倍数: %d\n",m*n/a);//最小公倍数
*/

 

 

//3.穷举法求最大公约数(不用判断大小!)
/*
for(t=a;t>0;t--)
{
if(a%t==0 && b%t==0)
break;
}
printf("最大公约数: %d\n",t);
printf("最小公倍数: %d\n",a*b/t);
*/

 


//多个数的最大公约数和最小公倍数
/*
例子:
for (i= a; i>0; i-- )
if (a%i==0&&b%i==0&&c%i==0) break;
printf("最大公约数: %d\n", i);
for (i= a; ; i++ )
if (i%a==0&&i%b==0&&i%c==0) break;
printf("最小公倍数: %d\n", i )
*/


return 0;
}

posted @ 2016-05-28 15:43  961897  阅读(336)  评论(0编辑  收藏  举报