当前位置: 代码迷 >> 综合 >> HDOJ 2504 又见GCD
  详细解决方案

HDOJ 2504 又见GCD

热度:24   发布时间:2023-10-21 18:38:46.0

HDACM 2504

此题自己被自己搞晕,以为是一个水题认为a和c的最大公约数是b,而要求c最小!那c肯定是2*b啦! 唯一要考虑的不就是a==2*b的时候!那c便等于3*b! 当WA了自己试了 a=24 b=4 c应该是20,而我的是 c=8。自己被自己蠢死…… 所以没有捷径可走,直接暴力解决。

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();while (n-- > 0) {int a = sc.nextInt();int b = sc.nextInt();int i = 2;while (true) {if (isgcd(a, b * i, b)) {break;}i++;}System.out.println(b * i);}sc.close();}public static boolean isgcd(int a, int b, int c) {while (true) {a = a % b;if (a == 0) {if (b == c) {return true;}return false;}b = b % a;if (b == 0) {if (a == c) {return true;}return false;}}}
}