最小公倍数最大,也就是尽量让2个数互质,所以把n除以2 从中间向两边找就够了,自己写几组数据就能发现规律。
注意longlong存
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int main() { int cas; long long s,n; cin>>cas; while(cas--) { cin>>n; if(n==2) s=1; else { if(n&1) { n>>=1; s=n*(n+1); } else { n>>=1; s=(n&1)?(n-2)*(n+2):(n-1)*(n+1); } } cout<<s<<endl; } return 0; }