多校第三场 Hdu 4627 最小公倍数问题

来源:互联网 发布:数据库入门基础知识 编辑:程序博客网 时间:2024/06/07 06:47

思路:a+b=n,当a,b接近时,a*b最大,但本题是a b 的最大公倍数最大,所以除了从中间进行搜索外,还需要两数互质

代码:

#include <stdio.h>#include <iostream>#include <cstring>#include <string.h>#include <cmath>#include <vector>#include <map>#include <algorithm>using namespace std;const int M=100005;int main(){    int t;    long long s,n;    scanf("%d",&t);    while(t--)    {        scanf("%I64d",&n);//要注意与s 范围一致,不然WA        if(n==2)        {            cout<<1<<endl;            continue;        }        if(n%2==0)        {            n/=2;            if(n%2==0)                s=(n-1)*(n+1);            else                s=(n-2)*(n+2);        }        else        {            n/=2;            s=n*(n+1);        }        printf("%I64d\n",s);    }    return 0;}


原创粉丝点击