hdu2601
2015-08-04 09:08
363 查看
求出有多少对 i,j 使得n=i*j+i+j的是的(0<i<=j)
N (0<=N <= 1010).
N (0<=N <= 1010).
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; typedef long long ll; const int maxn=1e6; ll prime[maxn],len=0; bool status[maxn]; void pri() { len=0; for(int i=2;i<maxn;i++) { if(!status[i]) prime[len++]=i; for(int j=0;j<len&&i*prime[j]<maxn;j++) { status[i*prime[j]]=1; if(i%prime[j]==0) break; } } } int main() { pri(); int t; scanf("%d",&t); while(t--) { ll n; scanf("%I64d",&n); n+=1; ll ans=1; for(int j=0;j<len&&prime[j]<=n;j++) { ll temp=0; while(n%prime[j]==0) {n/=prime[j];temp++;} ans*=(temp+1); } if(n>1ll) ans*=2; ans-=2; printf("%I64d\n",(ans+1)/2); } return 0; } /** n=i*j+i+j----n+1=(i+1)(j+1) i>=1 (i+1)>=2 求n+1大于1的因子 最近遇到的数学题 都差不多是推公式,判断单调,然后就是化简 */
相关文章推荐
- POJ2406 Power Strings
- iOS优化相关---加速Table Views开发的10个建议
- 【leetCode】Delete Node In A Linked List
- 【Java并发编程实战】-----synchronized
- Azure HDInsight 和 Spark 大数据实战(二)
- Sorting it ALL Out(POJ_1094)
- JavaScript之更换超链接
- js 的使用原则
- Java数组与泛型
- struts配置dtd提示
- Ubuntu 命令配置
- 每天一个小程序——冒泡排序实现!
- SAP NCO中间件 server模式测试
- slickedit字体设置——使用Source Code Pro字体
- 第16章 调色板管理器_16.3 调色板和现实世界中的图像
- servelet 直接输出内容
- Android Activity中加入View后进行后台截屏截图
- squid之安装配置运行
- jQuery模拟抛物线轨迹动画
- LeetCode 之 Pow(x, n)(分治法)