题目大意
从1-n中找出最大的gcd值。
题目思路
对于最大公约数而言,当某一个数比较小,另一个数比较大时,那我们可能可以得到较大的gcd。因为题目给出的是n的排列。那么我们b的值要么选n要么选n-1,当n为偶数的时候,那我们选n,否则选n-1,对于a的值我们选2,那么都是偶数的情况下得到的gcd值必然最大。除了对于n为2或3的时候,我们a为1,b为2。
参考代码
#include<bits/stdc++.h>
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
const ll mod = 1e9 + 7;
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
cout << n / 2 << endl;
}
return 0;
}