1 /*找规律,n是奇数那么就是n/2和n/2+1 2 如果n是偶数,那就是两种情况n/2-1,和n/2-2两种,比较一下大小就可以 3 思路来自:http://www.cnblogs.com/freezhan/ 4 */ 5 #include<stdio.h> 6 #include<string.h> 7 __int64 gcd(__int64 a,__int64 b) 8 { 9 if(b==0) return a; 10 return gcd(b,a%b); 11 } 12 __int64 LMC(__int64 a,__int64 b) 13 { 14 return a/gcd(a,b)*b; 15 } 16 __int64 max(__int64 a,__int64 b) 17 { 18 if(a>b) return a; 19 return b; 20 } 21 int main() 22 { 23 __int64 n; 24 int t; 25 scanf("%d",&t); 26 while(t--) 27 { 28 scanf("%I64d",&n); 29 __int64 ans,sum; 30 if(n%2) 31 { 32 ans=LMC(n/2,n/2+1); 33 } 34 else 35 { 36 if(n==2) ans=1; 37 else 38 { 39 ans=LMC(n/2-1,(n-n/2+1) ); 40 sum=LMC(n/2-2,(n-n/2+2) ); 41 ans=max(ans,sum); 42 } 43 } 44 printf("%I64d ",ans); 45 } 46 return 0; 47 }