![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c语言编程:输入两个正整数,求最大公约数和最小公倍数
18个回答
展开全部
#include<stdio.h>
//最大公约数
int gcd(int a,int b)
{
if (a > b)
{
a^=b;b^=a;a^=b;
}
return a > 0 ? gcd (b % a, a) : b;
}
//最小公倍数
int lcm(int a, int b)
{
int i;
if (a > b)
{
a^=b;b^=a;a^=b;
}
for (i = b; i % a != 0; i+= b);
return i;
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b) !=EOF)
{
printf("%d %d\n", gcd(a,b),lcm(a,b));
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int gcd(int, int); //两个数的最大公约数
int ngcd(int *, int) //N个数的最大公约数
int lcm(int, int) //两个数的最小公倍数
int nlcm(int *, int) //N个数的最小公倍数
int gcd(int a, int b)
{
if(a < b) //swap(a,b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
int c;
while((c = a % b) != 0) //辗转相除
{
a = b;
b = c;
}
return b;
}
int ngcd(int * pa, int n)
{
if(n == 1)
return *pa;
return (gcd(pa[n-1], ngcd(pa, n-1)));
}
int lcm(int a, int b) //最大公倍数 = 两数乘积 / 最大公约数
{
return a*b/gcd(a, b);
}
int nlcm(int * pa, int n)
{
if(n == 1)
return *pa;
return lcm(pa[n-1], nlcm(pa, n-1));
}
int ngcd(int *, int) //N个数的最大公约数
int lcm(int, int) //两个数的最小公倍数
int nlcm(int *, int) //N个数的最小公倍数
int gcd(int a, int b)
{
if(a < b) //swap(a,b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
int c;
while((c = a % b) != 0) //辗转相除
{
a = b;
b = c;
}
return b;
}
int ngcd(int * pa, int n)
{
if(n == 1)
return *pa;
return (gcd(pa[n-1], ngcd(pa, n-1)));
}
int lcm(int a, int b) //最大公倍数 = 两数乘积 / 最大公约数
{
return a*b/gcd(a, b);
}
int nlcm(int * pa, int n)
{
if(n == 1)
return *pa;
return lcm(pa[n-1], nlcm(pa, n-1));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
int main()
{
int m, n;
int m_cup, n_cup, res; /*被除数, 除数, 余数*/
printf("Enter two integer:\n");
scanf("%d %d", &m, &n);
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
printf("Greatest common divisor: %d\n", n_cup);
printf("Lease common multiple : %d\n", m * n / n_cup);
}
else printf("Error!\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
printf("请输入两个数a,b:");
int a,b;
scanf("%d,%d",&a,&b);
int c,min,max;
c = a>=b ? b : a;
for(;c>0;c--)
{
if ( a%c==0 && b%c==0)
{max=c;
break;}
}
min = a*b/max;
printf("最大公约数是%d,最小公倍数是%d\n",max,min);
return 0;
}
int main()
{
printf("请输入两个数a,b:");
int a,b;
scanf("%d,%d",&a,&b);
int c,min,max;
c = a>=b ? b : a;
for(;c>0;c--)
{
if ( a%c==0 && b%c==0)
{max=c;
break;}
}
min = a*b/max;
printf("最大公约数是%d,最小公倍数是%d\n",max,min);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-10
展开全部
#include<stdio.h>
void main()
{int a,b,c,d,m;
printf("Please Input two Integer:");
scanf("%d%d",&c,&d);
if(c>d)
{m=d;d=c;c=m;}
a=c;b=d;
while(b!=0)
{
m=a%b;a=b;b=m;
}
printf("最大公约数是:%d\n",a);
printf("最小公倍数是:%d\n",c*d/a);}
void main()
{int a,b,c,d,m;
printf("Please Input two Integer:");
scanf("%d%d",&c,&d);
if(c>d)
{m=d;d=c;c=m;}
a=c;b=d;
while(b!=0)
{
m=a%b;a=b;b=m;
}
printf("最大公约数是:%d\n",a);
printf("最小公倍数是:%d\n",c*d/a);}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询