A problem is easy

描述
When Teddy was a child , he was always thinking about some simple math problems ,such as “What it’s 1 cup of water plus 1 pile of dough ..” , “100 yuan buy 100 pig” .etc..

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
样例输入
2
1
3
样例输出
0
1

程序主要目的是怎么简化时间复杂度,想到原式等价于(m+1)=(i+1)*(j+1),所以问题就归结于求(m+1)大于等于2的因子的个数.
 1 #include <stdio.h>
 2 #include <math.h>
 3
 4 int main(){
 5     int T;
 6     int n;
 7     int amount;
 8     int i;
 9
10
11     scanf("%d",&T);
12
13     while(T--){
14         scanf("%d",&n);
15
16         amount=0;
17         for(i=2;i<=sqrt(n+1);i++){
18             if((n+1)%i==0)
19                 amount++;
20         }
21
22
23         printf("%d\n",amount);
24     }
25
26     return 0;
27 }
 
时间: 2024-08-09 22:01:08

A problem is easy的相关文章

NYOJ 216 A problem is easy【数学题】

化简一下即可 A problem is easy 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 When Teddy was a child , he was always thinking about some simple math problems ,such as "What it's 1 cup of water plus 1 pile of dough .." , "100 yuan buy 100 pig" .etc..

Problem 2146 Easy Game (FZU 数学啊)

题目链接:http://acm.fzu.edu.cn/problem.php?pid=2146 Problem Description Fat brother and Maze are playing a kind of special (hentai) game on a string S. Now they would like to count the length of this string. But as both Fat brother and Maze are programme

NYOJ题目216 A problem is easy

//AC  心得:思考题目要求,寻找好合适的条件. #include<stdio.h>int main(){ int T; scanf("%d",&T); while(T--) { int n,i; int a=0; scanf("%d",&n); for(i=1;(i+1)*(i+1)<=n+1;i++)//数学平方数理想化 { if((n+1)%(i+1)==0)//i*j+i+j =N 经过观察,可以变形为i*j+i+j+1=

(DS 《算法入门经典》)UVA 11991 Easy Problem from Rujia Liu?(求第k个v出现的索引)

题目大意: 求第k个v出现的索引 解题思路: 如果能构造出一个数据结构,使得data[v][k]就是第k个v出现的索引值即可求解.data[v]表示数v出现的索引数组, data[v][k]表示第k个v出现的索引. Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 200

[UVA] 11991 - Easy Problem from Rujia Liu? [STL应用]

11991 - Easy Problem from Rujia Liu? Time limit: 1.000 seconds Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ con

uva Easy Problem from Rujia Liu?

Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu's Presents 1 and 2), he occasionally sets

codeforces A. In Search of an Easy Problem

A. In Search of an Easy Problem time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output When preparing a tournament, Codeforces coordinators try treir best to make the first problem as easy as poss

ACM-简单题之As Easy As A+B——hdu1040

***************************************转载请注明出处:http://blog.csdn.net/lttree*************************************** As Easy As A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 35503    Accepte

hdu 1040 As Easy As A+B

As Easy As A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 53368    Accepted Submission(s): 22939 Problem Description These days, I am thinking about a question, how can I get a problem as