欧几里得
题号:NC201863
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

欧几里得算法是一种求最大公约数的有效算法,在算法竞赛中很常用。
这个算法的 Python 实现如下:
def gcd(a,b):
    if b == 0:
        return a
    return gcd(b,a%b)
现在,如果已知 gcd(a,b) 共递归了 n次,求所有可能的a,b中满足a>b>=0且a+b最小的一组的a与b之和。

输入描述:

第一行一个整数,T。
接下来T行一行一个整数,n。

输出描述:

T行,每行一个整数,代表a+b。
示例1

输入

复制
1
0

输出

复制
1

说明

gcd(1,0) 由于 b=0,不会递归,即是递归0次。
示例2

输入

复制
1
1

输出

复制
3

说明

gcd(2,1)会递归一次至gcd(1,0)。

备注: