数论之欧几里得算法hdu1019

来源:互联网 发布:windows route delete 编辑:程序博客网 时间:2024/05/21 20:22

想当初,我是多么的不屑于看欧几里得算法,哎~这下要看了。可怜

由于我找解释找的很困难,所以就不写解释了,不过,还是在百度百科里面有。微笑有详细的解释。

hdu1019里面了,有考两个知识点,一个就是怎么利用最小公约数求最小公倍数,还有就是如何求一大群数的最小公倍数,

答案一,两数的乘积除以两数的最小公约数就得到了最小公倍数。答案二,先求出两个数的最小公倍数,再拿这个数和之后的数去求最小公倍数。

我算是领悟了,没有做题目的数量还是不行,咱们总不可嫩做出一个从来没有做过的题目。。。。是吧。。> <

#include<iostream>#include<cstdio>using namespace std;int gcd(int x,int y){    return (!y) ? x:gcd(y,x%y);}int main(){    int n,m,t,i;    scanf("%d",&t);    while(t--)    {        int a,b,ans;        scanf("%d%d",&n,&m);        a=m;        for(i=1;i<n;i++)        {            scanf("%d",&m);            if(a<m){   b=a;a=m;m=b; }            a=a/gcd(a,m)*m;        }        printf("%d\n",a);    }    return 0;}


0 0
原创粉丝点击