您的位置:首页 > 其它

第十二周-求两个整数的最大公约数和最小公倍数

2016-11-14 16:35 387 查看
#include<stdio.h>
#include <stdlib.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 a,int b)
{
int q;
/*
if(a<b)
{
a=a^b;
b=a^b;
a=a^b;
}
*/
while(a%b!=0)
{
q=a%b;
a=b;
b=q;
}
return b;
}
int lcm(int a,int b)
{
return(a*b/gcd(a,b));
}
//百度得到的一个神奇套路
//int gcd(int a,int b)
//{
//return (b==0)?a:gcd(b,a%b)
//}
//瞬间凌乱
//参考网上答案,之前我加的使a>b的句子可以不要
//因为当a<b时,a%b=a,所以第一次循环结束返回的值就是b,a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐