hdu acm-step 2.1.5 又见GCD

  本题题意:给出最大公约数和其中一个数,求另一个最小的数与该数的最大公约数等于给出的数.

  

#include <cstdio>
using namespace std;
int gcd(int a,int b)
{
        int r;
        while(b)
        {
                r = a%b;
                a = b;
                b = r;
        }
        return a;
}
int main()
{
        int T;
        scanf("%d",&T);
        while(T--)
        {
                int a,b;
                scanf("%d%d",&a,&b);
                int t = a/b;
                int i;
                for(i=2;i<t;i++){if(gcd(a,i*b) == b)break;}
                if(i==t)
                while(gcd(i*b,a)!=b)i++;
                printf("%d\n",i*b);

        }
        return 0;
}

这题开始想偏了,后来还是直接暴力过了,汗~。

从2开始枚举除了数a外的所有数,直到找到第一个最大公约数为b的。

时间: 2024-11-08 23:06:14

hdu acm-step 2.1.5 又见GCD的相关文章

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

HDU ACM 1103 Flo&#39;s Restaurant

分析:借助STL的min_element实现.每次更新最先被占用的桌子,具体见注释. #include<iostream> #include<algorithm> using namespace std; int main() { int A,B,C; char s[10]; int a[102],b[102],c[102]; int curtime,count,ans; int *p; //桌子最先空闲时间 while(cin>>A>>B>>C

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 1425 sort(哈希表思想)

sort Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25803    Accepted Submission(s): 7764 Problem Description 给你n个整数,请按从大到小的顺序输出其中前m大的数. Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且

HDU ACM 1005 Number Sequence

Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 119732    Accepted Submission(s): 29072 Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A

(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,

hdu acm 1166 敌兵布阵 (线段树)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 37903    Accepted Submission(s): 15985 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务

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 ACM 1025 Constructing Roads In JGShining&amp;#39;s Kingdom-&amp;gt;二分求解LIS+O(NlogN)

#include<iostream> using namespace std; //BFS+优先队列(打印路径) #define N 500005 int c[N]; int dp[N]; //dp[i]保存的是长度为i的最长不降子序列的最小尾元素 int BS(int n,int x) //二分查找下标,当x比全部元素小时下标为1,比全部元素大时下标为n+1. { int low,high,mid; low=1,high=n; while(low<=high) { mid=(low+h

杭电 HDU ACM 圆桌会议

圆桌会议 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3356    Accepted Submission(s): 2351 Problem Description HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有