Problem B. 最小公倍数和最大公约数问题
时间限制 1000 ms
内存限制 128 MB
题目描述
输入二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求出满足下列条件的P、Q的个数。
条件:1.P、Q是正整数
2.要求P、Q以xO为最大公约数,以yO为最小公倍数。
试求,满足条件的所有可能的两个正整数的个数。
输入数据
两个正整数
输出数据
满足条件的所有可能的两个正整数的个数
样例输入
3 60
样例输出
4
样例说明
说明:(不用输出)此时的 P Q 分别为:
3 60
15 12
12 15
60 3
所以,满足条件的所有可能的两个正整数的个数共4种
// Author : 农村娃的成长之路
// Time : 2019/9/25 8:10
// File : GCDANDLCM.java
// Describe : 最小公倍数和最大公约数问题
// IDE : IntelliJ IDEA
package Algorithm;
import java.util.Scanner;
public class GCDANDLCM {
public static int GCD(int x, int y){ //递归的辗转相除法求最大公约数
return (y == 0) ? x : GCD(y, x % y);
}
public static int LCM(int x, int y){ //递归的辗转相除法求最小公倍数数
return x*y/GCD(x,y);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x= in.nextInt();//数的下线
int y = in.nextInt();//数的上线
int count=0;
for (int i = x; i <=y ; i++) {
for (int j = y; j >=x ; j--) {
if (GCD(i,j)==x&&LCM(i,j)==y){
count++;
}
}
}
System.out.println(count);
in.close();
}
}