基本算法—最大公约数和最小公倍数
2017-04-14 19:55
260 查看
#include <stdio.h>
int lcm(int a, int b,int c);
int gcd(int a, int b,int c);
int main()
{
int a,b,c,gys,gbs;
scanf("%d%d%d",&a,&b,&c);
gys=gcd(a,b,c);//最大公约数
gbs=lcm(a,b,c);//最小公倍数
printf("最大公约数:%d\n",gys);
printf("最小公倍数:%d\n",gbs);
return 0;
}
int gcd(int a, int b,int c)//求最大公约数
{
int min,max1,i;
if(a<b)
{
if(a<c)
{
min=a;
}
else
{
min=c;
}
}
else
{
if(b<c)
{
min=b;
}
else
{
min=c;
}
}
for(i=1; i<=min; i++)
{
if(a%i==0&&b%i==0&&c%i==0)
{
max1=i;
}
}
return max1;
}
int lcm(int a,int b,int c)//求最小公倍数
{
int min=1;//最小公倍数初值赋值为1
while(1) //永远成立,无条件循环
{
if(min%a==0&&min%b==0&&min%c==0) //判断是否为最小公倍数
break;//如果满足min分别是a,b,c的倍数,立即跳出
else
min++;//不满足,就+1
}
return min;
}
/*
#include <stdio.h>
int main()
{
int n,m,gys,gbs;
int gcd(int a, int b);
int lcm(int a, int b);
scanf("%d%d",&n,&m);
gys=gcd(n,m);//最大公约数
gbs=lcm(n,m);//最小公倍数
printf("%d %d\n",gys,gbs);
return 0;
}
int gcd(int x,int y)//!!!求最大公约数!!!
{
int r;
while(y>0)
{
r=x%y;
x=y;
y=r;
}
return x;
}
int lcm(int x,int y)
{
return ((x*y)/gcd(x,y));
}
*/
int lcm(int a, int b,int c);
int gcd(int a, int b,int c);
int main()
{
int a,b,c,gys,gbs;
scanf("%d%d%d",&a,&b,&c);
gys=gcd(a,b,c);//最大公约数
gbs=lcm(a,b,c);//最小公倍数
printf("最大公约数:%d\n",gys);
printf("最小公倍数:%d\n",gbs);
return 0;
}
int gcd(int a, int b,int c)//求最大公约数
{
int min,max1,i;
if(a<b)
{
if(a<c)
{
min=a;
}
else
{
min=c;
}
}
else
{
if(b<c)
{
min=b;
}
else
{
min=c;
}
}
for(i=1; i<=min; i++)
{
if(a%i==0&&b%i==0&&c%i==0)
{
max1=i;
}
}
return max1;
}
int lcm(int a,int b,int c)//求最小公倍数
{
int min=1;//最小公倍数初值赋值为1
while(1) //永远成立,无条件循环
{
if(min%a==0&&min%b==0&&min%c==0) //判断是否为最小公倍数
break;//如果满足min分别是a,b,c的倍数,立即跳出
else
min++;//不满足,就+1
}
return min;
}
/*
#include <stdio.h>
int main()
{
int n,m,gys,gbs;
int gcd(int a, int b);
int lcm(int a, int b);
scanf("%d%d",&n,&m);
gys=gcd(n,m);//最大公约数
gbs=lcm(n,m);//最小公倍数
printf("%d %d\n",gys,gbs);
return 0;
}
int gcd(int x,int y)//!!!求最大公约数!!!
{
int r;
while(y>0)
{
r=x%y;
x=y;
y=r;
}
return x;
}
int lcm(int x,int y)
{
return ((x*y)/gcd(x,y));
}
*/
相关文章推荐
- C++程序设计:求最大公约数和最小公倍数的算法
- 第二十一周【项目: 最小公倍数,最大公约数(算法改进)】
- 求多个正整数的最大公约数和最小公倍数的三种算法
- 两个数的最大公约数和最小公倍数的算法
- 求最大公约数和最小公倍数的三个算法
- 利用Java求最大公约数与最小公倍数的算法
- 两个正数的最大公约数和最小公倍数的两种算法
- 求两个数的最大公约数和最小公倍数的算法
- C语言求最大公约数和最小公倍数的几种算法
- 关于求最大公约数和最小公倍数的的算法
- 2..第二篇:常用算法之数学算法-----最大公约数和最小公倍数
- java基础-利用基本循环语句计算输入的两个整数的最大公约数和最小公倍数
- 求最大公约数与最小公倍数的算法
- 关于最大公约数和最小公倍数的算法(自己写的一个,欢迎大家吐槽)
- 关于C/C++中求最大公约数和最小公倍数的算法
- 常见的求最大公约数和最小公倍数的算法
- C语言基本算法--求最大公因数和最小公倍数
- (算法)辗转相除法求最大公约数和最小公倍数
- 求最大公约数和最小公倍数的最简单 高效的算法
- 算法第九节:求最大公约数和最小公倍数