1266: gcd和lcm(Java)
WUSTOJ 1266: gcd和lcm
参考
Description
已知a,b的最大公约数为x,也即gcd(a,b)=x; a,b的最小公倍数为y,也即lcm(a,b)=y.给出x,y.求满足要求的a和b一共有多少种。
Input
多组测试样例。每组给两个整数x,y.(1<=x<=100000,1<=y<=1000000000).
Output
对于每个测试样例,输出一个整数,表示满足要求的(a,b)的种数。
Sample Input
3 60
2 2
Sample Output
4
1
HINT
题目数据范围做了少许改动。
分析
- 当最大公约数(x)和最小公倍数(y)相同时,
a,b的取值只能有一种情况,即a = b = x = y。 - 如果存在
a,b,则a * b * x = y,那么y % x = 0,因此如果余数不为0,那么种数为0。 - 如果存在
a,b,那么x * z = y且a * b = z,因此,只需要将a从1循环到z的开方数即可。 - 对于
a,b还要满足互质才有效,如果不互质,那么最大公约数就不是x了,判断互质用辗转相除即可。 - 由于
a,b的值可以互换,因此每组满足条件的互质数,种数都要加2。
代码
/**
* 用时:284ms
* @author PengHao
* @version A1.1
* @date 2019年4月17日 上午11:21:53
*/
import java.util.Scanner;
public class Main {
private Scanner sc;
private int x, y; // 最大公约数和最小公倍数
public Main() {
sc = new Scanner(System.in);
while (sc.hasNext()) {
x = sc.nextInt();
y = sc.nextInt();
System.out.println(count());
}
sc.close();
}
/**
* @return 种数
*/
private int count() {
// 最大公约数和最小公倍数相等
if (x == y) {
return 1;
}
// 最小公倍数与最大公约数不是倍数关系
if (0 != y % x) {
return 0;
}
int z = y / x;
int j, num;
num = 0; // 初始0种
// 小于等于开方数即可
for (int i = 1; i * i <= z; i++) {
j = z / i;
// 倍数关系才能计算
if (0 == z % i) {
// 判断i,j是否互质,互质的话加2,a,b可互换
if (coPrime(i, j)) {
num += 2;
}
}
}
return num; // 返回种数
}
/**
* 辗转相除法,来自百度百科
*
* @param a 一个数
* @param b 另一个数
* @return true 如果a和b互质
*/
private boolean coPrime(int a, int b) {
while (true) {
a = a % b;
if (0 == a) {
return 1 == b ? true : false;
}
b = b % a;
if (0 == b) {
return 1 == a ? true : false;
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
new Main();
}
}
1266: gcd和lcm(Java)的更多相关文章
- poj 2429 GCD & LCM Inverse 【java】+【数学】
GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9928 Accepted: ...
- HDOJ 4497 GCD and LCM
组合数学 GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- HDU 4497 GCD and LCM (合数分解)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu4497 GCD and LCM
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total S ...
- HDU 4497 GCD and LCM(数论+容斥原理)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- 数论——算数基本定理 - HDU 4497 GCD and LCM
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu 4497 GCD and LCM (非原创)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu 4497 GCD and LCM 数学
GCD and LCM Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4 ...
- GCD 与 LCM UVA - 11388
题目链接: https://cn.vjudge.net/problem/23709/origin 本题其实有坑 数据大小太大, 2的32次方,故而一定是取巧的算法,暴力不可能过的 思路是最大公因数的倍 ...
随机推荐
- 分布式的一致性(分布式事物)-------2PC详述
英文名:Two Phase Commit(2PC) 算法目的:实现分布式事物 算法概述: 有两类节点: -----协调者 -----事务参与者 流程阶段: -----请求阶段 -----提交阶段 算法 ...
- SSM框架的配置Spring+Springmvc +Mybatis
ssm框架是由spring mvc +spring+mybatis组成 快速阅读 通过spring的配置文件spring.xml,在servlet中指定spring mvc的配置文件spring-mv ...
- js回车键事件
js回车键事件 一.总结 一句话总结: $("#focus").keypress(function(event){if(event.which === 13) { /*点击回车要执 ...
- Matlab图像处理——中值滤波medfilt2问题解决
本文链接:https://blog.csdn.net/Pxzly1117/article/details/79201772程序: I=imread('13.jpg');%读入图像imshow(I);h ...
- poj2456
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24979 Accepted: 11594 ...
- python 设计模式之命令(Command)模式
#写在前面 也了解了不少设计模式了,他们都有一个通病,那就是喜欢把简单的东西复杂化.比如在不同的类中加个第三者.哈哈哈,简单变复杂是有目的的,那就是降低耦合度,增强可维护性,提高代码复用性,使代码变得 ...
- spring boot打开tomcat的access日志
spring boot虽说内置了tomcat,但打出来的是jar包而非war包,更没有access日志,那么如何打开access日志呢?只需在application.properties中加入相关配置 ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_08-SpringSecurityOauth2研究-解决swagger-ui无法访问
3.3.4.4 解决swagger-ui无法访问 当课程管理加了授权之后再访问swagger-ui则报错: 这里默认配置的了所有的请求都必须认证 把图片认证的路径加进去的话 那么访问课程图片的列表 就 ...
- 使用Lock对象实现同步效果
Lock是一个接口,为了使用一个Lock对象,需要用到 Lock lock = new ReentrantLock(); 与 synchronized (someObject) 类似的,loc ...
- 怎样创建一个OpenStack官方账号?
OpenStack官方账号分两种: 社区成员 (Community Member) 基金会成员 (Foundation Member) 基金会成员比社区成员的权利多一点: 允许提交峰会议题 允许对峰会 ...