ACM 数论 A problem is easy
来源:互联网 发布:淘宝号贷款怎么贷款 编辑:程序博客网 时间:2024/06/05 02:16
One day Teddy met a old man in his dream , in that dream the man whose name was“RuLai” gave Teddy a problem :
Given an N , can you calculate how many ways to write N as i * j + i + j (0 < i <= j) ?
Teddy found the answer when N was less than 10…but if N get bigger , he found it was too difficult for him to solve.
Well , you clever ACMers ,could you help little Teddy to solve this problem and let him have a good dream ?
- 输入
- The first line contain a T(T <= 2000) . followed by T lines ,each line contain an integer N (0<=N <= 10^11).
- 输出
- For each case, output the number of ways in one line
- 样例输入
213
- 样例输出
0
1
题意简单,就数n有多少种可能摆成i*j+i+j的形势。
重点:!!!学会数学推导变换
n=i*j+i+j
n+1=i*j+i+j+1
n+1=(i+1)*(j+1)
由于i,j均为整数,所以n+1也是整数
所以可以将n+1分解成两个整数的乘积。
从1到根下n暴力求解。
#include<stdio.h>
#include<math.h>
intmain()
{
int i,j,k,l,m,n;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
n=n+1;
l=sqrt(double(n));
for(i=2,k=0;i<=l;i++)
{
if(n%i==0)
k++;
}
printf("%d\n",k);
}
}
- ACM 数论 A problem is easy
- acm-A problem is easy
- A problem is easy
- A problem is easy
- A problem is easy
- A problem is easy
- A problem is easy
- A problem is easy
- A problem is easy
- A problem is easy
- 南阳理工ACM 题目216 A problem is easy
- NYOJ - A problem is easy
- NYOJ - A problem is easy
- NYOJ a problem is easy
- NYOJ216 A problem is easy
- 216 A problem is easy
- 77.A problem is easy
- nyoj 216 A problem is easy
- android获取短信验证码并自动填写的实现一
- JAVA源码---String
- 更高效的Fibonacci求解
- css3 圆角框
- MVP模式探讨
- ACM 数论 A problem is easy
- Selenium - Working with SELECT elements
- 由《炮灰模型——女生选择追求者模型》到“微软钻石题”
- 一个奇怪的串口问题
- Opencv中如何保存Mat矩阵
- 在Centos7上搭建SVN服务器并实现自动同步至web目录
- webview页面的返回和前进
- 年纪大了的过
- nginx location 匹配顺序