数学http://oj.daimayuan.top/course/11/problem/47
这组数和sum为,设两组和分别为sum1,sum2
求两组数字的和的公约数最大
sum1和sum2的共同约数也是sum的约数
设x在中,那么一定有一组为,另外一组为,这时最大公约数为
,即枚举最小的x
这里可以分情况讨论,当两组没有共同约数时,最大公约数为1,当两组有共同约数时,便是上面这种情况
#include<iostream>
using namespace std;
long long n;
int main() {
cin>>n;
long long sum=n*(n+1)/2,i;
for(i=2;i<sum;i++)
{
if(sum%i==0) break;
}
cout<<sum/i;
}