zoukankan      html  css  js  c++  java
  • ZJU Least Common Multiple

    #include<stdlib.h>
    #include<stdio.h>
    int *data;
    int main()
    {
    	void lcm(int n);
    	int m;
    	int n;
    	int i;
    
    	scanf("%d",&m);
    	while(m--)
    		{
    			scanf("%d",&n);
    			data=(int *)malloc(sizeof(int)*(n+1));
    			for(i=0;i<n;i++)
    			scanf("%d",&data[i]);
    
    			lcm(n);
    			free(data);
    		}
    }
    
    void lcm(int n)	 //求n个数的最小公倍数
    {
    	int gcd ( int  a,int b );
    	int i,j;
    	int tem;
    	int now=data[0];
    
    	for(i=1;i<n;i++)
    	{ 
    		tem=gcd(now,data[i]);
    		now=now/tem*data[i];
    	}
    	printf("%d
    ",now);
    
    } 
    
    int gcd ( int  a,int b )	 //求两个数的最大公约数  
    {
    	int temp;
    	if (a<b)
    	{
    		temp=a;
    		a=b;
    		b=temp;
    	}
    	if ( a % b == 0)
    	return b;
    	else
    	return gcd ( b,a % b) ;
    
    }


    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1797

    求多个数的最小公倍数。现在我们对于两个数,他们的最小公倍数和最大公约数有如下关系:

    设两个数是a,b最大公约数是p,最小公倍数是q
    那么有这样的关系:ab=pq

    而最大公约数可以用辗转相除发求。

    解题思路是这样的:先求前两个数的最小公倍数q,再求q与第三个数的最小公倍数,覆盖掉原来的q值,,,,,依次下去.................


    #include<stdlib.h>
    #include<stdio.h>
    int *data;
    int main()
    {
    	void lcm(int n);
    	int m;
    	int n;
    	int i;
    
    	scanf("%d",&m);
    	while(m--)
    		{
    			scanf("%d",&n);
    			data=(int *)malloc(sizeof(int)*(n+1));
    			for(i=0;i<n;i++)
    			scanf("%d",&data[i]);
    
    			lcm(n);
    			free(data);
    		}
    }
    
    void lcm(int n)	 //求n个数的最小公倍数
    {
    	int gcd ( int  a,int b );
    	int i,j;
    	int tem;
    	int now=data[0];
    
    	for(i=1;i<n;i++)
    	{ 
    		tem=gcd(now,data[i]);
    		now=now/tem*data[i];
    	}
    	printf("%d
    ",now);
    
    } 
    
    int gcd ( int  a,int b )	 //求两个数的最大公约数  
    {
    	int temp;
    	if (a<b)
    	{
    		temp=a;
    		a=b;
    		b=temp;
    	}
    	if ( a % b == 0)
    	return b;
    	else
    	return gcd ( b,a % b) ;
    
    }


     


     

  • 相关阅读:
    wabpack 多页面 react配置 (对比单页面)
    vue-router+nginx非根路径的配置方法
    Vue-Devtools快速安装配置教程
    C++字符串
    NSIS插件制作
    HOOK学习
    排序:数组置顶元素(将数组某个元素排到第一位)
    raect hook中使用防抖(debounce)和节流(throttle)
    浏览器的缓存机制
    JavaScript踩坑解构赋值
  • 原文地址:https://www.cnblogs.com/frankM/p/4399544.html
Copyright © 2011-2022 走看看