求最大公约数-辗转相除法-更相减损术
来源:互联网 发布:绿色傲剑金蛇数据 编辑:程序博客网 时间:2024/06/06 00:41
辗转相除法
两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。直至可以整除
#include<iostream>
#include<cmath>
using namespace std;
int test (int a,int b)
{
int temp;
if(a<b)//该步可以不要,算法会自动调整最终使第一参数不小于第二参数
{
temp=a;
a=b;
b=temp;
}
if(a%b==0)
return b;
else
return test(b,a%b);
}
int main()
{
int n,m,i,j,a,b;
int sum=1;
int num=0;
while(cin>>n>>m)
{
sum=test(n,m);
//cout<<sum<<endl;
cout<<n/sum*m;
}
}
更相减损术
两个正整数a和b(a>b),它们的最大公约数等于a-b的差值c和较小数b的最大公约数。
#include<cmath>
using namespace std;
int test (int a,int b)
{
//cout<<a<<" "<<b<<endl;
if(a==b)
return b;
if(a>b)//该步可以不要,直接return test即可,如此书写逻辑清晰一些
return test(b,a-b);
else
return test(a,b-a);
}
int main()
{
int n,m,i,j,a,b;
int sum=1;
int num=0;
while(cin>>n>>m)
{
sum=test(n,m);
cout<<sum<<endl;//最大公约数
cout<<n/sum*m;//最小公倍数
}
}
链接一个,讲的非常好
点击打开链接
阅读全文
0 0
- 求最大公约数-辗转相除法-更相减损术
- 辗转相除法+更相减损法求最大公约数
- 求最大公约数——辗转相除法,更相减损术
- 求最大公约数之辗转相除法、更相减损术及两者结合算法
- 最大公约数(辗转相除法和更相减损法)
- C++算法:辗转相除法与更相减损术
- 【C语言】最大公约数(更相减损法)和(辗转相除法)
- 辗转相除法、更相减损法、Stein算法
- 辗转相除法求最大公约数
- 辗转相除法求最大公约数
- 辗转相除法求最大公约数
- 辗转相除法求最大公约数
- 求最大公约数-辗转相除法
- 辗转相除法求最大公约数
- 辗转相除法求最大公约数
- 【辗转相除法求最大公约数】
- 辗转相除法求最大公约数
- 辗转相除法求最大公约数
- JVM内存区
- 可变参数和泛型--->堆污染
- 操作系统之进程与线程3——内核级线程及切换(未完成)
- Balala Power! HDU
- 3.numpy基础使用
- 求最大公约数-辗转相除法-更相减损术
- Java对象的内存分配过程
- 17暑假多校联赛1.11 HDU 6043 KazaQ's Socks
- springboot+mybatis+gradle在idea和oracle使用
- Android获取路由ip
- CentOS配置日志集中管理
- 从源码角度解析View的绘制过程
- JVM垃圾收集算法
- Json字符串转excel表格文件