zoukankan      html  css  js  c++  java
  • Lowest Common Multiple Plus

    #include <cstdio>
    
    int gcd(int a, int b)
    {
    	if(a % b == 0)	return b;
    	else	return gcd(b, a % b);
    }
    
    int main()
    {
    	int n, a, b;
    	while(scanf("%d", &n) != EOF)
    	{
    		scanf("%d", &a);
    		n = n - 1;
    		while(n --)
    		{
    			scanf("%d", &b);
    			a = (a / gcd(a, b)) * b;       // (a*b)/gcd(a, b) 有可能出现不能整除下取整的情况, 而(a/gcd(a, b))*b一定会整除 
    		}
    		printf("%d
    ", a);
    	}
    	
    	return 0;
    }
    

      

    #include <cstdio>
    
    int gcd(int a, int b)
    {
    	return b ? gcd(b, a % b) : a;
    }
    
    int lcm(int a, int b)
    {
    	return (a / gcd(a, b)) * b;
    }
    
    int main()
    {
    	int n, a, b;
    	while(scanf("%d", &n) != EOF)
    	{
    		scanf("%d", &a);
    		n --;
    		while(n --)
    		{
    			scanf("%d", &b);
    			a = lcm(a, b);
    		}
    		printf("%d
    ", a);
    	}
    	
    	return 0;
    }
    

      

    最小公倍数的求解在最大公约数的基础上运行. 当得到a和b的最大公约数d之后, 可以马上得到a和b最小公倍数是ab / d.

    由于ab在实际运算中可能会溢出,因此更恰当的写法是a / d * b.由于d是a的约数,所以a/d一定可以整除.(d是最大公因数)

  • 相关阅读:
    文件操作
    苹果越狱
    猫的期幻之旅-20130114
    js传url中文参数乱码问题
    JS三元
    SQL同列合并
    数据库引擎介绍innodb和myisam
    数据库优化
    gleez 下分页功能优化
    kohana安装总结
  • 原文地址:https://www.cnblogs.com/mjn1/p/11271513.html
Copyright © 2011-2022 走看看