【HDU 2028】【数学】Lowest Common Multiple Plus

最小公倍数就是两个数的乘积除去他们的最大公约数,最大公约数可以用更相减损或者辗转相除求。还可以用分解质因数法<友情附赠更相减损和辗转相除。


#include "stdio.h"
#include "string.h"
int gcd (int a,int b)
{
  while(a!=b)
   if(a>b) a=a-b;
   else b=b-a;
   return a;
}
int Gcd(int M,int N)
{
    int Rem;
    while(N > 0)
    {
        Rem = M % N;
        M = N;
        N = Rem;
    }
    return M;
}
int lcm(int a,int b)
{
    int min,max,ret;
    min=a>b?b:a;
    max=a>b?a:b;
    ret=max;
    while (ret%min!=0)    ret+=max;
    return ret;
}
int main(int argc, char const *argv[])
{
  int n;
  int a,b;
  while(scanf("%d",&n)!=EOF)
  {
    a=1;
    while(n--)
    {
      scanf("%d",&b);
      a=a*b/Gcd(a,b);
    }
    printf("%d\n",a);
  }
  return 0;
}



你可能感兴趣的:(c,数学,水题)