题目:给你一个数字问将他写成连续的数字的和的形式。有几种写法。

分析:数论。

设拆成的序列个数为k,我们分两种情况讨论:

1.拆成奇数个连续数。那么设中位数是a,则有n = k * a;

2.拆成偶数个连续数,那么设中位数是a与a+1,则有n = k / 2 *(a+a+1)。

综上所述,本问题就是将n拆成2个数的乘积的形式,且当中一个一定为奇数;

问题转化成求解n中奇数因子的个数。这里求出全部的奇素因子计算组合数就可以。

说明:实际的数据规模没有题面上那么大╮(╯▽╰)╭。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio> using namespace std; int visit[3000010];
int prime[300010];
int sizes[30010]; int main()
{
//筛法计算素数
memset(visit, 0, sizeof(visit));
int count = 0;
for (int i = 2 ; i < 3000001 ; ++ i) {
if (!visit[i])
prime[count ++] = i;
for (int j = 0 ; j < count && i*prime[j] < 3000001 ; ++ j) {
visit[i*prime[j]] = 1;
if (i%prime[j] == 0) break;
}
} long long n;
while (cin >> n) {
while (n > 0LL && n%2LL == 0LL) n /= 2LL;
int number = 0;
for (int i = 1 ; i < count && n > 1LL ; ++ i) {
if (n < prime[i]*prime[i]) break;
if (n%prime[i] == 0LL) {
sizes[++ number] = 0;
while (n%prime[i] == 0LL) {
n /= prime[i];
sizes[number] ++;
}
}
}
if (n > 1LL) sizes[++ number] = 1; long long ans = 1LL;
for (int i = 1 ; i <= number ; ++ i)
ans = ans*(sizes[i]+1LL); cout << ans << endl;
}
return 0;
}

UVa 10290 - {Sum+=i++} to Reach N的更多相关文章

  1. Uva10290 - {Sum+=i++} to Reach N

    Problem H {sum+=i++} to Reach N Input: standard input Output:  standard output Memory Limit: 32 MB A ...

  2. UVa 10891 Sum游戏

    https://vjudge.net/problem/UVA-10891 题意: 有一个长度为n的整数序列,两个游戏者A和B轮流取数,A先取.每次玩家只能从左端或者右端取任意数量个数,但不能两端都取. ...

  3. UVA 1210 Sum of Consecutive Prime Numbers

    https://vjudge.net/problem/UVA-1210 统计质数前缀和,枚举左右端点,这一段的区间和+1 #include<cstdio> #define N 10001 ...

  4. UVA 10891 SUM游戏 DP

    刚看到这个题目不知道怎么个DP法,有点难想到 解法如下 设置dp[i][j]代表i到j这段子序列能获得的最大值,这样,枚举m=min(m,dp[i+1到j][j],dp[i][i到j-1]),m就代表 ...

  5. UVA 1213 Sum of Different Primes(经典dp)

    题意:选择k(k<15)个唯一质数,求出和为n(n<1121)的可能数 题解:预处理dp,dp[k][n]表示使用k个素数拼成n的总方案数 就是三重枚举,枚举k,枚举n,枚举小于n的素数 ...

  6. UVA 1213 Sum of Different Primes

    https://vjudge.net/problem/UVA-1213 dp[i][j][k] 前i个质数里选j个和为k的方案数 枚举第i个选不选转移 #include<cstdio> # ...

  7. UVa 766 Sum of powers (伯努利数)

    题意: 求 ,要求M尽量小. 析:这其实就是一个伯努利数,伯努利数公式如下: 伯努利数满足条件B0 = 1,并且 也有 几乎就是本题,然后只要把 n 换成 n-1,然后后面就一样了,然后最后再加上一个 ...

  8. UVA 1213 - Sum of Different Primes(递推)

    类似一个背包问题的计数问题.(虽然我也不记得这叫什么背包了 一开始我想的状态定义是:f[n = 和为n][k 个素数]. 递推式呼之欲出: f[n][k] = sigma f[n-pi][k-1]. ...

  9. UVa 1213 Sum of Different Primes (DP)

    题意:给定两个数 n 和 k,问你用 k 个不同的质数组成 n,有多少方法. 析:dp[i][j] 表示 n 由 j 个不同的质数组成,然后先打表素数,然后就easy了. 代码如下: #pragma ...

随机推荐

  1. nodejs安装express

    最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: 1 express -t ejs microblog 可是执行后 ...

  2. RecastNavigation(3D场景建模、网格导航)

    一.RecastNavigation详解 RecastNavigation定义: RecastNavigation是一个导航寻路工具集,使用邻接的凸多边形集合描述一个3D场景,A*寻路算法使3D场景的 ...

  3. Jmeter - 服务器性能检测

    在对系统做压力测试时,往往需要对服务的性能进行监控,包括CPU,Memory,IO,还有网络情况进行监控. Jemter有个一插件,能很好的支持这些性能监控.原理是服务器启动服务之后,测试机发起请求, ...

  4. Asp.net MVC4 Step by Step (2)-参数数据的传递

    首先创建一个表单,不同于WebForm,框架提供了一系列HMTL帮助方法来生成HTML标签. 下面创建一个Create.cshtml为文件名的视图. <h2> Create Auction ...

  5. 快速搭建tab

    1. 布局文件代码: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.a ...

  6. 关于Membership和身份认证的记录

    在今天写好的code中测试环节,当我用webconfig中的测试数据库就是ok的,但是更替为正式的就不行了: 报错的类是MemberShip,那就关系到身份认证的环节了 找了几个链接,记录下 1.身份 ...

  7. 【Linux】计划任务管理crontab、at

    一.计划任务管理 —— crontab 1. crontab 命令 •  按照预先设置的时间周期(分钟.小时.天…… )重复执行用户指定的命令操作,属于周期性计划任务,默认打开“/var/spool/ ...

  8. Mybatis与Hibernate的对比

    Mybatis与Hibernate的对比 工作中,用了一段Hibernate与Mybatis,也在此简单的聊上几句,希望对大家有帮助. Mybatis与Hibernate不同,它不完全是一个ORM框架 ...

  9. Linux之tar.gz file

    A tarball (tar.gz file) is compressed tar archive. The tar program provides the ability to create ta ...

  10. Higher-Order Functions and Lambdas

    https://kotlinlang.org/docs/reference/lambdas.html