Sum of Consecutive Integers

题目链接

题意

问N能够分解成多少种不同的连续数的和.

思路

连续数是一个等差数列:$$

\frac{(2a1 + n -1)n}{2} = T$$

那么\(\frac{2*T}{n}-n = 2*a1-1\),所以当\(n\)为\(T\)的奇因子的时候符合要求.

那么当\(n\)为偶数的时候\(\frac{2*T}{n}-(n-1) = 2*a1\);因为\((n-1)\)为奇数,\(2*a1\)为偶数,所以\(\frac{2T}{n}\)为奇数,所以另\(t\)上下含有的2的个数,必定上下含有2的个数必定相等,\(t = 2^t\)那么就得到\(\frac{\frac{2T}{t}}{\frac{n}{t}}\),那么另\(u = \frac{n}{t}\)那么\(u\)就是\(T\)的奇数因子,那么\(n = u*t\)就行了,因为每个\(n\)的值会一一对应一个连续的序列,所以即使当\(n\)为偶数的时候是通过求\(T\)的奇数因子而求得.所以通过求\(n\)为奇数时和\(n\)为偶数时,都是求T的奇数因子而求得,那么所有的种数就是求\(T\)的奇数因子的个数,除去1的时候。

然后就素数打表,\(T = p1^{k1} * p2^{k2}*p3^{k3}*...pn^{kn}\),那么如果\(T\)为偶数的话就把\(p\)为2的去掉,那么奇数因子个数就为\((k1+1)*(k2+1)*...(kn+1)\),最后再减个1就行了.

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
bool prime[10000005];
int table_prime[1000005];
int main(void)
{
for(int i = 2; i < 10000; i++)
{
if(!prime[i])
for(int j = i; (i*j) <= 10000000; j++)
prime[i*j] = true;
}
int cn = 0;
for(int i = 2; i <= 10000000; i++)
if(!prime[i])
table_prime[cn++] = i;
int T;
scanf("%d",&T);
int __cn = 0;
while(T--)
{
LL n;
scanf("%lld",&n);
int f = 1;
LL u = 0,sum = 1;
while(n%2 == 0)
n/=2;
while(n > 1&&f < cn)
{
if((LL)table_prime[f]*(LL)table_prime[f] > n)
break;
while(n%table_prime[f] == 0)
{
u++;
n/=table_prime[f];
}
sum = sum * (u+1);
u = 0;
f++;
}
if(n > 1)
sum *= (LL)2;
sum--;
printf("Case %d: ",++__cn);
printf("%lld\n",sum);
}
return 0;
}

Sum of Consecutive Integers的更多相关文章

  1. LightOj 1278 - Sum of Consecutive Integers(求奇因子的个数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1278 题意:给你一个数n(n<=10^14),然后问n能用几个连续的数表示; 例 ...

  2. Sum of Consecutive Integers LightOJ - 1278(推公式 数学思维)

    原文地址:https://blog.csdn.net/qq_37632935/article/details/79465213 给你一个数n(n<=10^14),然后问n能用几个连续的数表示; ...

  3. LightOJ 1278 - Sum of Consecutive Integers 分解奇因子 + 思维

    http://www.lightoj.com/volume_showproblem.php?problem=1278 题意:问一个数n能表示成几种连续整数相加的形式 如6=1+2+3,1种. 思路:先 ...

  4. POJ 2739. Sum of Consecutive Prime Numbers

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20050 ...

  5. POJ 2739 Sum of Consecutive Prime Numbers(尺取法)

    题目链接: 传送门 Sum of Consecutive Prime Numbers Time Limit: 1000MS     Memory Limit: 65536K Description S ...

  6. ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法

    POJ 2739 Sum of Consecutive Prime Numbers Time Limit:1000MS     Memory Limit:65536KB     64bit IO Fo ...

  7. POJ2739 Sum of Consecutive Prime Numbers 2017-05-31 09:33 47人阅读 评论(0) 收藏

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25225 ...

  8. Sum of Consecutive Prime Numbers

    Sum of Consecutive Prime Numbers http://poj.org/problem?id=2739 Time Limit: 1000MS   Memory Limit: 6 ...

  9. poj 2739 Sum of Consecutive Prime Numbers 素数 读题 难度:0

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19697 ...

随机推荐

  1. “equals”有值 与 “==”存在 “equals”只是比较值是否相同,值传递,==地址传递,null==a,避免引发空指针异常,STRING是一个对象==null,对象不存在,str.equals("")对象存在但是包含字符‘''

    原文链接:http://www.cnblogs.com/lezhou2014/p/3955536.html "equals" 与 "==" "equa ...

  2. Requests的安装和使用

    一.Requests的安装1.pip3 install requests2.验证 import requests 不报错即可

  3. 微信小程序调试bug-日程计划类

    首先嘤嘤嘤一下,破bug,改了我一天,摔(′д` )-彡-彡 写的个微信小程序 逻辑如下,正常的功能是,我可以新建,修改,查询(按筛选条件),删除某个日程信息,后面贴个页面,我的bug出现就很搞笑了, ...

  4. Git五个常见问题及解决方法

    一.删除远程仓库上被忽略的文件 由于种种原因,一些本应该被忽略的文件被我们误操作提交到了远程仓库了.那么我们该怎么删除这些文件呢? 以误提交了.idea目录为例,我们可以通过下面的步骤处理: 1)我们 ...

  5. C 语言中求中间数时候防止溢出方法

    当使用二分法时候,注意 mid = left + (right - left) / 2; 这句代码,可以防止溢出!!,千万不能写成 mid = (left + right) / 2 这样写的话,当数字 ...

  6. 论 Erda 的安全之道

    作者|陈建锋 来源|尔达 Erda 公众号 ​ 软件研发是一个复杂的工程,不仅需要进行软件的设计.开发.测试.运维,还涉及到大量的人力.物力管理.今天讨论的主角 - "安全",在软 ...

  7. C++ 德才论

    输入样例: 14 60 80 10000001 64 90 10000002 90 60 10000011 85 80 10000003 85 80 10000004 80 85 10000005 8 ...

  8. ython学习笔记(接口自动化框架 V2.0)

    这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了Cr ...

  9. linux 配置本地yum

    1.挂载光盘 #挂载光盘 mount /dev/cdrom /mnt/cdrom 2.修改yum.conf, 运行 vi /etc/yum.conf,文件替换成如下内容 [main] cachedir ...

  10. Spring Boot下使用拦截器

    Spring Boot对于原来在配置文件配置的内容,现在全部体现在一个类中,该类需要继承自WebMvcConfigurationSupport类,并使用@Configuration进行注解,表示该类为 ...