HDU 2504 又见GCD(最大公约数与最小公倍数变形题)

又见GCD

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 18480    Accepted Submission(s): 7708

Problem Description

有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。

Input

第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。

Output

输出对应的c,每组测试数据占一行。

Sample Input

2

6 2

12 4

Sample Output

4

8

Source

《ACM程序设计》短学期考试_软件工程及其他专业

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2504

分析:注意这个判断条件gcd(i,a)==b&&i!=b&&gcd(i,b)==b即可,其他的都没什么!

下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int gcd(int x,int y)
 4 {
 5     return y==0?x:gcd(y,x%y);
 6 }
 7 int main()
 8 {
 9     int n;
10     while(scanf("%d",&n)!=EOF)
11     {
12         while(n--)
13         {
14             int a,b;
15             scanf("%d%d",&a,&b);
16             for(int i=b;;i++)
17             {
18                 if(gcd(i,a)==b&&i!=b&&gcd(i,b)==b)
19                 {
20                     printf("%d\n",i);
21                     break;
22                 }
23             }
24         }
25     }
26     return 0;
27 }
时间: 2024-08-06 11:58:33

HDU 2504 又见GCD(最大公约数与最小公倍数变形题)的相关文章

hdu 2504 又见Gcd

有时候觉得自己也挺天才滴~O(∩_∩)O~,小小鼓励下.(虽然是道大水题吧....囧) 1 #include<stdio.h> 2 int Gcd(int m,int n) 3 { 4 return m==0?n:Gcd(n%m,m); 5 } 6 int main() 7 { 8 int n; 9 scanf("%d",&n); 10 while(n--) 11 { 12 int a,b,i; 13 scanf("%d%d",&a,&a

HDU 2504 又见GCD (最大公因数+暴力)

题意:是中文题. 析:a和c的最大公因数是b,也就是说,a和c除了b就没有公因数了.再说就是互质了. 所以先把a除以b,然后一个暴力n,满足gcd(a, n) =1,就结束,就是n倍的c. 代码如下: #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <cstring> #incl

hdoj 2504 又见GCD 【GCD判定】

思路:一个一个的找,因为c不等于b 且b是(a, c)的最大公约数, 所以c是b的整数倍, 每找到一个c就判断与 a的最大公约数是不是b,不是的话,就继续 刚开始的时候 居然把gcd非递归形式忘了...也没想用递归形式.. 又见GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10151    Accepted Submissio

HDU 2054 又见GCD(水题??)

又见GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15221    Accepted Submission(s): 6397 Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n

HDU ACM 2504 又见GCD

分析:水题,但要注意当c取2*b时,a可能被c整除,此时a继续加b继续判断. #include<iostream> using namespace std; int gcd(int a,int b) { int r; while(b) { r=a%b; a=b; b=r; } return a; } int get(int a,int b) { int c; c=2*b; while(gcd(c,a)!=b) c+=b; return c; } int main() { int n,a,b;

(hdu 2.1.4)又见GCD(求最大公约数GCD的变化题)

题目: 又见GCD Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2685 Accepted Submission(s): 1327   Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n,

又见GCD(杭电2504)(gcd)

又见GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11122    Accepted Submission(s): 4696 Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n

又见GCD hdu2504

题目地址http://acm.hdu.edu.cn/showproblem.php?pid=2504 Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b. Output 输出对应的c,每组测试数据占一行. Sample Input 2 6 2 12 4 Sample Output 4 8

HDU2504 又见GCD

又见GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9984    Accepted Submission(s): 4157 Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),当中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n,