hdu 1019 Least Common Multiple(欧几里德算法)

来源:互联网 发布:itver网络电视 编辑:程序博客网 时间:2024/04/28 03:28

看题目请点这里

题意:

求多个正整数的最小公倍数。

分析:

欧几里德算法算法求出两个数的最大公约数后便可求出两个数的最小公倍数,其最小公倍数=n*m/最大公约数。

代码:

#include<stdio.h>int gcd(int s,int m)   //欧几里德算法求两个数最大公约数{    return m==0?s:gcd(m,s%m);}int main(){    int t,n,m,s;    scanf("%d",&t);    while(s=1,t--)    {        scanf("%d",&n);        while(n--)        {            scanf("%d",&m);            s*=(m/gcd(s,m));    //将求得的最小公倍与新的数再求最小公倍数,求到最后便得到答案        }        printf("%d\n",s);    }    return 0;}

原创粉丝点击