zoukankan      html  css  js  c++  java
  • 九度OJ 1056--最大公约数 1439--Least Common Multiple 【辗转相除法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1056

    题目描述:

    输入两个正整数,求其最大公约数。

    输入:

    测试数据有多组,每组输入两个正整数。

    输出:

    对于每组输入,请输出其最大公约数。

    样例输入:
    49 14
    样例输出:
    7
    来源:
    2011年哈尔滨工业大学计算机研究生机试真题
    #include <stdio.h>
    
    int gcd1 (int a, int b){
    	if (b == 0)
    		return a;
    	else
    		return gcd1 (b, a % b);
    }
    
    int gcd2 (int a, int b){
    	int tmp;
    
    	while (b != 0){
    		tmp = a;
    		a = b;
    		b = tmp % b;
    	}
    	return a;
    }
    
    int main (void){
    	int a, b;
    
    	while (scanf ("%d%d", &a, &b) != EOF){
    		printf ("%d
    ", gcd1 (a, b));
    		printf ("%d
    ", gcd2 (a, b));
    	}
    
    	return 0;
    }

    题目地址:http://ac.jobdu.com/problem.php?pid=1439

    题目描述:

    The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 is 105.

    输入:

    Input will consist of multiple problem instances. The first line of the input will contain a single integer indicating the number of problem instances. Each instance will consist of a single line of the form m n1 n2 n3 ... nm where m is the number of integers in the set and n1 ... nm are the integers. All integers will be positive and lie within the range of a 32-bit integer.

    输出:

    For each problem instance, output a single line containing the corresponding LCM. All results will lie in the range of a 32-bit integer.

    样例输入:
    2
    3 5 7 15
    6 4 10296 936 1287 792 1
    样例输出:
    105
    10296
    #include <stdio.h>
     
    int Gcd (int a, int b){
        int tmp;
     
        while (b != 0){
            tmp = a;
            a = b;
            b = tmp % b;
        }
        return a;
    }
     
    int main(void){
        int n;
        int a;
        int b;
        int m;
     
        while (scanf ("%d", &n) != EOF){
            while (n-- != 0){
                scanf ("%d%d", &m, &a);
                --m;
                while (m != 0){
                    scanf ("%d", &b);
                    a = a / Gcd (a, b) * b;
                    --m;
                }
                printf ("%d
    ", a);
            }
        }
     
        return 0;
    }

    参考资料:维基百科 -- 辗转相除法

  • 相关阅读:
    用jquery实现手风琴效果
    网易轻博客特点
    用display做导航
    小结
    有序列表的显示
    水仙花
    相识多少天
    关于javascript中this的运用
    BFC
    八月第三周
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373789.html
Copyright © 2011-2022 走看看