也称欧几里得算法

原理:

gcd(a,b)=gcd(b,a mod b)

边界条件为 gcd(a,0)=a;

其中mod 为求余


故辗转相除法可简单的表示为:

int gcd(int a, int b)
{
return b ==0? a:gcd( b, a% b);
}

简洁而优雅。

例如:HDU 2028 Lowest Common Multiple Plus求n个数的最小公倍数。

最小公倍数=两数之积  /  最大公约数

这里防止中间过程溢出,先除以最大公约数,然后在求积。

#include<iostream>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int n,ans;
while(cin>>n)
{
cin>>ans;
while(--n)
{
int temp;
cin>>temp;
ans=ans/gcd(ans,temp)*temp;
}
cout<<ans<<endl;
}
}




最大公约数最小公倍数 (例:HDU2028 Lowest Common Multiple Plus)的更多相关文章

  1. HDU2028 Lowest Common Multiple Plus

    解题思路:最近很忙,有点乱,感觉对不起自己的中国好队友.   好好调整,一切都不是问题,Just do it ! 代码: #include<cstdio> int gcd(int a, i ...

  2. hdu 2028 Lowest Common Multiple Plus(最小公倍数)

    Lowest Common Multiple Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  3. Lowest Common Multiple Plus

    Lowest Common Multiple Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...

  4. HDU2028:Lowest Common Multiple Plus

    Problem Description 求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数 ...

  5. 26最小公倍数 lowest common multiple

    题目描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数. 输入描述:输入两个正整数A和B. 输出描述:输出A和B的最小公倍数. 输入例子 ...

  6. Lowest Common Multiple Plus(hdu2028)

    思考: 乘法爆咋数据.把int换成unsigned就过了,同时%d换成%u.求最大公约数和最小公倍数. #include<stdio.h> int gcd(unsigned x, unsi ...

  7. Lowest Common Multiple Plus 题解

    求n个数的最小公倍数. Input输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行.你可以假设最后的 ...

  8. 杭电 2028 ( Lowest Common Multiple Plus )

    链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2028 题目要求:就是求最大公倍数,我百度了一下,最好实现的算法就是:       公式法 由于 ...

  9. 3F - Lowest Common Multiple Plus

    求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行.你可以假设最 ...

随机推荐

  1. You have ettempted to queue to many files.You may select one files.

    <script type="text/javascript" src="/script/swfupload/swfupload.js"></s ...

  2. 指尖上的电商---(10)SolrAdmin中加入多核

    在Solr中有的时候,我们并不仅仅是须要一种形式的索引文件.可能须要多种不同数据的索引文件.这时我们就能够在同一个Solr以下创建 多核. 比方,我们在solr以下想把产品信息和分类信息各存放一个索引 ...

  3. virtual与override

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. javafx Cursor

    public class EffectTest extends Application { ObservableList cursors = FXCollections.observableArray ...

  5. offSet和client和scroll

    这三个是是js盒模型属性 client clientWidth 内容宽度加上左右padding clientHeight 内容高度加上上下padding clientTop 上边框的宽度 client ...

  6. 一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody

    简介 JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请 ...

  7. [Angular] Make a chatbot with DialogFlow

    Register a account on https://console.dialogflow.com/api-client/ "Creat a intent" -- you c ...

  8. POJ 1426 Find The Multiple (DFS / BFS)

    题目链接:id=1426">Find The Multiple 解析:直接从前往后搜.设当前数为k用long long保存,则下一个数不是k*10就是k*10+1 AC代码: /* D ...

  9. Android开发经验之在图片上随意点击移动文字

    只要在图片范围之内,文字可随意点击移动. package xiaosi.GetTextImage; import android.content.Context; import android.con ...

  10. 企业部署Linux应用将拥有更低的TCO

    650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" ...