Sicily 4427. Greatest Common Divisors

Time Limit: 5 secs, Memory Limit: 256 MB

Description

A common divisor for two positive numbers is a number which both numbers are divisible by. It’s easy to calculate the greatest common divisor between tow numbers. But your teacher wants to give you a harder task, in this task you have to find the greatest common divisor d between two integers a and b that is in a given range from low to high (inclusive), i.e. low<=d<=high. It is possible that there is no common divisor in the given range.
Input

The first line contains an integer T (1<=T<=10)- indicating the number of test cases.
For each case, there are four integers a, b, low, high (1<=a,b<=1000,1<=low<=high<=1000) in one line.

Output

For each case, print the greatest common divisor between a and b in given range, if there is no common divisor in given range, you should print “No answer”(without quotes).
Sample Input

3
9 27 1 5
9 27 10 11
9 27 9 11
Sample Output

3
No answer
9
Problem Source

2011年新手赛Warm Up by AcFast


^_^ JUST DO IT!


#include <iostream>

using namespace std;

pair<bool, int> gcd(int a, int b, int low, int high)
{
    for (int i = high; i >= low; i--)
        if (a % i == 0 && b % i == 0)
            return make_pair(true, i);
    return make_pair(false, 0);
}

int main()
{
    int T, a, b, low, high;
    cin >> T;
    while (T--)
    {
        cin >> a >> b >> low >> high;
        if (gcd(a, b, low, high).first)
            cout << gcd(a, b, low, high).second << endl;
        else
            cout << "No answer" << endl;
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值