HihoCoder

来源:互联网 发布:盛夏光年知乎 编辑:程序博客网 时间:2024/06/14 04:33





每一个正整数 N 都能表示成若干个连续正整数的和,例如10可以表示成1+2+3+4,15可以表示成4+5+6,8可以表示成8本身。我们称这种表示方法为SCI(Sum of Consecutive Integers)表示法。  

小Hi发现一个整数可能有很多种SCI表示,例如15可以表示成1+2+3+4+5,4+5+6,7+8以及15本身。小Hi想知道N的所有SCI表示中,最多能包含多少个连续正整数。例如1+2+3+4+5是15包含正整数最多的表示。

Input

第一行一个整数 T,代表测试数据的组数。  

以下 T 行每行一个正整数N。  

对于30%的数据,1 ≤ N ≤ 1000  

对于80%的数据,1 ≤ N ≤ 100000  

对于100%的数据,1 ≤ T ≤ 10,1 ≤ N ≤ 1000000000

Output

对于每组数据输出N的SCI表示最多能包含多少个整数。

Sample Input
2 15  8
Sample Output
51 


      思路:因为是连续的一段正整数,所以为等差数列,设这一段连续的数中,首项为n,尾项为m,等差数列和为(n+m)*(m-n+1)/2; a=(n+m),b=(m-n+1)



a-b一定为奇数才可以满足条件。求2*sum的开方根,枚举满足有条件下最大的b (项数)。。



#include<cstdio>#include<cstring>#include<cmath>using namespace std;typedef long long ll;int main(){    int t;    ll m;    scanf("%d",&t);    while(t--)    {        scanf("%lld",&m);        ll ans=(ll)sqrt(2*m);        for(ll i=ans;i>=1;i--)        {            if((2*m)%i==0)            {                ll j=2*m/i;                if((j-i)%2)                {                       printf("%lld\n",i);                       break;                }            }        }    }    return 0;}



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 ZF葡7正常佩戴动能太满怎么办 怀孕初期老婆婆做的菜不好吃怎么办 调节协议已签字不签收调解书怎么办 给晋中苗圃拉了树苗没拿上钱怎么办 多肉旁边长出好多小株怎么办 烤瓷牙制备时颌关系不够怎么办 对门放石头正对我家大门怎么办 合租的室友关门开门特别大声怎么办 三周岁的宝宝小阴唇再次粘连怎么办 小阴唇内侧长了毛囊炎很大疼怎么办 小阴唇上一个黄豆大的硬疙瘩怎么办 梦幻西游手游金币兑换上限了怎么办 手机放裤子口袋里易拔出怎么办 两个月宝宝拉肚子怎么办吃纯母乳 花王泡沫染停留时间太久怎么办 ps右下角的图层图标隐藏了怎么办 压缩包文件太大微信无法传送怎么办 一寸照片的尺寸在ps中怎么办 遇到尖酸刻薄爱数落人的领导怎么办 初中一年级的学生就不想读书怎么办 电脑上所有文件都变得很大怎么办 小孩子手被门缝夹肿了怎么办 阳台挂衣服的单杆掉下来了怎么办 九个月婴儿受凉声音变沙哑怎么办 以汉字为主题的手抄报怎么办 用惯了笔画打字打不来拼音怎么办 老条石头给淤泥弄黑怎么办 新买的沙发垫子味很大怎么办 电脑表格中删去多余框线怎么办 农村教学点招不到学生老师怎么办 wps卡死了打的东西没保存怎么办 华为手机浏览器边框颜色变了怎么办 打印机打出来的字两边少怎么办 wps表格分页时表格断了怎么办 word里的表格一页放不下怎么办 表格上红色的字不能删除怎么办 渐变区的选择框变得很大怎么办 用乐秀编辑短片后两边有边框怎么办 安卓手机相机图标没有了怎么办 三星s6不充电就死机了怎么办 三星s7通话感应器不管用了怎么办