首页 > 技术文章 > 两仪剑法(最小公倍数)

henuLiGang 2018-03-22 21:51 原文

两仪剑法是武当派武功的高级功夫,且必须 2个人配合使用威力才大。同时该剑法招数变化太快、太多。设武当弟子甲招数变化周期为 n,武当弟子乙招数变化周期为 m,两弟子同时使用该剑法,当 2人恰好同时达到招数变化周期结束时,威力最大,此时能将邪教妖人置于死地。请你计算威力最大时,每人用了多少招?

输入格式

首先输入一个t(t<100000) 表示测试组数。

接下来 t组输入,每组输入 2 个数n,m(1n,m1000000000)。

输出格式

对于每组输出,输出用了多少招数。

样例输入

3
2 3
8 9
4 8

样例输出

6
72
8
 package 计蒜客;

import java.util.Scanner;

public class 两仪剑法 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        long[][] nums=new long[n][2];
        long[] arr=new long[n];
        for(int i=0;i<n;i++){
            nums[i][0]=scan.nextInt();
            nums[i][1]=scan.nextInt();
        }
        for(int i=0;i<n;i++){
            arr[i]=fun(nums[i][0],nums[i][1]);
        }
        for(long l:arr){
            System.out.println(l);
        }
    }
    //fun函数求出最小公倍数
    public static long fun(long num1,long nums2){
        return (num1*nums2)/gcd(num1,nums2);
    }
    //gcd函数求出两个数的最大公约数
    public static long gcd(long num1,long num2){
        if(num2==0){
            return num1;
        }
        return gcd(num2,num1%num2);
    }

}

 

推荐阅读