WUSTOJ 1266: gcd和lcm

参考

1naive1的博客

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

  题目数据范围做了少许改动。

分析

  1. 当最大公约数(x)和最小公倍数(y)相同时,ab的取值只能有一种情况,即a = b = x = y
  2. 如果存在ab,则a * b * x = y,那么y % x = 0,因此如果余数不为0,那么种数为0
  3. 如果存在ab,那么x * z = ya * b = z,因此,只需要将a1循环到z的开方数即可。
  4. 对于ab还要满足互质才有效,如果不互质,那么最大公约数就不是x了,判断互质用辗转相除即可。
  5. 由于ab的值可以互换,因此每组满足条件的互质数,种数都要加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)的更多相关文章

  1. poj 2429 GCD &amp; LCM Inverse 【java】+【数学】

    GCD & LCM Inverse Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9928   Accepted:  ...

  2. HDOJ 4497 GCD and LCM

    组合数学 GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  3. HDU 4497 GCD and LCM (合数分解)

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  4. hdu4497 GCD and LCM

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total S ...

  5. HDU 4497 GCD and LCM(数论+容斥原理)

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  6. 数论——算数基本定理 - HDU 4497 GCD and LCM

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  7. hdu 4497 GCD and LCM (非原创)

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  8. 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 ...

  9. GCD 与 LCM UVA - 11388

    题目链接: https://cn.vjudge.net/problem/23709/origin 本题其实有坑 数据大小太大, 2的32次方,故而一定是取巧的算法,暴力不可能过的 思路是最大公因数的倍 ...

随机推荐

  1. 去掉 webstorm 灰色的数据类型提示

  2. IdentityServer4入门五:错误处理

    在访问ClientMvc的保护页面时,会跳转到IdentityMvc页面,这时会出现类似下图的错误界面,让人无从入手. 如果你尝试按文字所说的内容去处理.你发现项目已正确设置.其实上面的内容是固定的, ...

  3. GDB使用——pwn相关

    目录 寄存器 内存 peda插件命令 x命令详解 后续补充 内容来源 寄存器 1.查看寄存器 2.查看所有寄存器 3.查看某个寄存器 4.修改寄存器的值 内存 1.修改内存值 2.搜索内存 peda插 ...

  4. 基础数据结构 对应 基础api

    <深入理解Redis> mastering redis

  5. gis空间分析案例_7参数单坐标转换

    gis空间分析案例_7参数单坐标转换 商务科技合作:向日葵,135-4855__4328,xiexiaokui#qq.com 功能: 对输入的单个坐标,利用7参数,一步进行坐标变换,使用极为直观,极大 ...

  6. Angular中的routerLink 跳转页面和默认路由

    1.创建新项目 2.创建home news newscontent 组件 3.找到app-rounting-moudle.ts配置路由 1)引入组件 import { HomeComponent } ...

  7. ISO/IEC 9899:2011 条款6.4.1——关键字

    6.4.1 关键字 语法 1.以下为关键字: auto    break    case    char    const    continue    default    do    double ...

  8. linux服务器下安装phpstudy 如何命令行进入mysql

    配置了phpstudy 可是进不去mysql 老是报-bash: mysqld: command not found 解决方法:在linux环境下运行:ln -s /phpstudy/mysql/bi ...

  9. 一百四十一:CMS系统之根据板块过滤显示帖子

    视图,根据传过来的板块id查数据 @bp.route('/')def index(): board_id = request.args.get('board_id', type=int, defaul ...

  10. sqlmap开源 测试sql注入的工具 各种参考链接

    https://www.cnblogs.com/insane-Mr-Li/p/10150165.html https://github.com/sqlmapproject/sqlmap 官网 http ...