最大公约数和最小公倍数问题

A.最大公约数和最小公倍数问题
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 26 (23 users) Total Accepted: 23 (23 users) Special Judge: No
Description

输入二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求出满足下列条件的P、Q的个数。       

条件1:P、Q是正整数       
条件2:要求P、Q以x0为最大公约数,以y0为最小公倍数。       
试求,满足条件的所有可能的两个正整数的个数。

Input
两个正整数
Output
满足条件的所有可能的两个正整数的个数
Sample Input
3 60
Sample Output
4 
Hint

说明:(不用输出)此时的  

P Q分别为: 3  60
           15 12
           12 15
           60 3

所以,满足条件的所有可能的两个正整数的个数共4种


import java.util.*;


public class Main {


static int max(int a,int b)
{
while(b!=0)
{
int o = a%b;
a = b;
b = o;
}
return a;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int x,y;
while(input.hasNextInt())
{
x = input.nextInt();
y = input.nextInt();
int v = x*y;
int s = (int)Math.sqrt(v);
int n = 0;
for(int i=x; i<=s; i++)
{
if((v%i==0)&&(max(v/i,i)==x))
{
    n++;
}
}
n = n*2;
System.out.printf("%d\n",n);
}
}


}

猜你喜欢

转载自blog.csdn.net/wonder__/article/details/79783046