Number of containers time limit (normal/java): 1000ms/3000ms Run memory limit: 65536KByte
For two integers m and K, K are said to be a container of M if k are divisible by M. Given 2 positive integers n and m (M < n), the function f (n, m) is defined to being the number of containers of M which AR e also no greater than N. For example, F (5, 1) =4, F (8, 2) =3, F (7, 3) =1, F (5, 4) =0 ...
Let-us define another function F (n) by the following equation:
Now given a positive an integer n, you are supposed to calculate the value of F (n).
Input
There are multiple test cases. The "a" of input contains an integer T (t<=200) indicating the number of test cases. Then T test Cases follow.
Each test case contains a positive the integer n (0 < n <= 2000000000) in a single line.
Output
For each test case, the output of the result F (n) in a single line.
Sample input
2
1
4
Sample output
0
4
http://blog.csdn.net/zxy_snow/article/details/6159956
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main ()
{
int ncases,i,n;
__int64 ans;
scanf ("%d", &ncases);
while (ncases--)
{
ans = 0;
scanf ("%d", &n);
for (I=1; i<=sqrt (n); i++)
ans + = (n/i);
Ans *= 2;
i--;
ans = ans-i*i-n;
printf ("%i64d\n", ans);
}
return 0;
}