P1029 最大公约数和最小公倍数问题 java代码

题目描述

输入 22 个正整数 x_0,y_0(2 \le x_0<100000,2 \le y_0<=1000000)x0,y0(2x0<100000,2y0<=1000000) ,求出满足下列条件的 P,QP,Q 的个数

条件:

  1. P,QP,Q 是正整数

  2. 要求 P,QP,Q 以 x_0x0 为最大公约数,以 y_0y0 为最小公倍数.

试求:满足条件的所有可能的 22 个正整数的个数.

输入输出格式

输入格式:

22 个正整数 x_0,y_0x0,y0

输出格式:

11 个数,表示求出满足条件的 P,QP,Q 的个数

代码如下:

import java.util.Scanner;


public class Main {

public static int gcd(int a,int b) {

if(b==0) {
return a;
}
return gcd(b, a%b);

}
public static void main(String[] args) {
int count = 0;
Scanner input = new Scanner(System.in);

int x = input.nextInt();
int y = input.nextInt();
 
for(int i=1;i<=Math.sqrt(x*y);i++) {
if((x*y)%i==0 && gcd(i, (x*y)/i)==x){
count++;
 
 
}
}
 
System.out.println(count*2);
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值