1. 程式人生 > >ZOJ.3175 Number of Containers【數學問題】 2015/10/11

ZOJ.3175 Number of Containers【數學問題】 2015/10/11

Number of Containers
Time Limit: 1 Second      Memory Limit: 32768 KB

For two integers m and k, k is said to be a container of m if k is divisible by m. Given 2 positive integers n and m (m < n), the function f(n, m) is defined to be the number of containers of m which are 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 integer n, you are supposed to calculate the value of F(n).

Input

There are multiple test cases. The first line 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 integer n (0 < n <= 2000000000) in a single line.

Output

For each test case, output the result F(n) in a single line.

Sample Input

2
1
4

Sample Output

0
4
Author: CAO, Peng
Source: The 9th Zhejiang University Programming Contest

有點摸不著頭腦,不是很懂(。・∀・)ノ゙

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>

using namespace std;

int main(){
    long long n,ans,t,i;
    cin>>t;
    while(t--){
        cin>>n;
        ans = 0;
        for( i = 1 ; i*i <= n ; ++i ){
            ans += n/i;
        }
        ans *= 2;
        i--;
        ans = ans - i*i-n;
        cout<<ans<<endl;
    }
    return 0;
}