题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4627

题目大意:给定一个整数n(2 <= n <= 109),满足a+b=n并且[a,b]的最小公倍数最大。

分析:相当简单的的一道题,因为生病好久没做题目,杭电居然是要用__int64,用long long反而错误,为此,WA了无数遍

代码如下:

 1 # include<iostream>
 2 # include<cstdio>
 3 # include<cmath>
 4 using namespace std;
 5 __int64 n;
 6 int main()
 7 {
 8     int T;
 9     scanf("%d",&T);
10     while(T--)
11     {
12         scanf("%I64d",&n);
13         __int64 temp = n/2;
14         if(n==2)
15             printf("1\n");
16         else if(n%2==1)
17             printf("%I64d\n",temp*(temp+1));
18         else
19         {
20             if(temp%2){
21                 printf("%I64d\n",(temp-2)*(temp+2));
22             }
23             else
24                 printf("%I64d\n",(temp-1)*(temp+1));
25         }
26     }
27     return 0;
28 }

 

把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~