ZOJ - 3175

ZOJ - 3175 
Time Limit: 2MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu

Status

Description

For two integers m and kk 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(nm) 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


#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
 int main()
 {
     int t;
     scanf("%d",&t);
     int n;
     while(t--)
     {
         long long sum=0;
         scanf("%d",&n);
        int  t=(int)sqrt((double)n);
         for(int i=1;i<=t;i++)
             sum+=(n/i);
         sum*=2;
         sum=sum-t*t-n;
         printf("%lld\n",sum);
     }
     return 0;
 }


posted on 2016-07-12 11:12  胖胖的乓乓  阅读(248)  评论(0编辑  收藏  举报

导航