题目描述
zls 有一个整数n,他想将 1−n这 n 个数字分成两组,每一组至少有一个数,并且使得两组数字的和
的最大公约数最大,请输出最大的最大公约数。
输入
输入一行,一个整数n。
2≤n≤10^9
输出
输出一行一个整数表示答案。
样例输入复制
6
样例输出复制
7
#include <iostream>
using namespace std;
long long n;
int main()
{
cin >> n;
if(n == 2)return puts("1");
long long sum = n*(n+1)/2;
long long i = 2;
while (i*i<=sum)
{
if (sum % i == 0)
{
cout << sum / i << endl;
break;
}
i++;
}
return 0;
}