A problem is easy
Description
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, cocould you help little Teddy to solve this problem and let him have a good dream?
-
Input
-
The first line contain a T (t <= 2000). Followed by T lines, each line contain an integer N (0 <= n <= 10 ^ 11 ).
-
Output
-
For each case, output the number of ways in one line
-
Sample Input
-
213
-
Sample output
-
01
#include <iostream>#include <cmath>using namespace std;int main(){ int n; int a,b; cin>>n; while(n--) { cin>>a; b=0; for(int i=2;i*i<=(a+1);i++) { int j = (a+1)/i; if(i*j==a+1 && i<=j) b++; } cout<<b<<endl; }return 0;}
A problem is easy