最大公约数与最小公倍数
2016-02-21 10:39
309 查看
求两数最大公约数:
辗转相除法:先大数除以小数,若整除则小数位最大公约数,若未整除,小数除以余数,直至整除,此时除数为最大公约数。
递归实现:
int gcd(int x,int y)
{
return y?gcd(y,x%y):x;
}
求两数最小公倍数:借助最大公约数来求。最小公倍数 = 两数之积 / 最大公约数。
升华:三个数最小公倍数:先求两个数的最大公约数->最小公倍数,再将该最小公倍数与另一数求最小公倍数。
int main()
{
int x,y,z,sum,res;
cin.sync_with_stdio(false);//加快cin读取速度
cin>>x>>y>>z;
sum = x*y;
sum = sum / gcd(x,y);
res = sum*z;
res = res / gcd(sum,z);
cout<<res<<endl;
return 0;
}
辗转相除法:先大数除以小数,若整除则小数位最大公约数,若未整除,小数除以余数,直至整除,此时除数为最大公约数。
递归实现:
int gcd(int x,int y)
{
return y?gcd(y,x%y):x;
}
求两数最小公倍数:借助最大公约数来求。最小公倍数 = 两数之积 / 最大公约数。
升华:三个数最小公倍数:先求两个数的最大公约数->最小公倍数,再将该最小公倍数与另一数求最小公倍数。
int main()
{
int x,y,z,sum,res;
cin.sync_with_stdio(false);//加快cin读取速度
cin>>x>>y>>z;
sum = x*y;
sum = sum / gcd(x,y);
res = sum*z;
res = res / gcd(sum,z);
cout<<res<<endl;
return 0;
}
相关文章推荐
- CodeForces 630 L. Cracking the Code(水~)
- 【SPOJ-YOUTUBE】Youtube【倍增】
- UIApplication类
- 在easyui datagrid中formatter数据后使用linkbutton
- html基础研究(一)-文本格式化标签研究
- UI整理-----part5--UICollectionView
- c语言入门之项目2.4——利用while求最大公约数
- poj-2411 Mondriaan's Dream (状态压缩dp)
- js实现冒泡排序
- 大端模式与小端模式
- 关于破解AI的补丁和方法
- Android 使用Shell脚本截屏并自动传到电脑上
- 浅谈数字舵机与模拟舵机区别
- CodeForces 630 K. Indivisibility(容斥)
- 用UIInterpolatingMotionEffect产生透视效果
- PHP程序的常见漏洞攻击分析
- Design Support Library(五)具有过度效果的布局 Layout
- Design Support Library(四)具有过渡效果的菜单控件
- CF_527A_PlayingWithPaper
- 用TypeScipt和AMD模块化理念实现React官方教程(五)提交和更新数据