Problem Description

In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data,encryption,etc. In this problem you are given a number,you have to determine the number of digits in the factorial of the number.

?



Input

Input consists of several lines of integer numbers. The first line contains an integer n,which is the number of cases to be tested,followed by n lines,one integer 1 ≤ n ≤ 10
7?on each line.

?



Output

The output contains the number of digits in the factorial of the integers appearing in the input.

?



Sample Input

  
  
   
   2
10
20
  
  

?



Sample Output

  
  
   
   7
19
  
  

n的位数=log10(n)+1,m=n!,=log10^1+log10^2+...+log10^n

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int n,m,i,ans;
    double t;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&m);
        t=0;
        for(i=2;i<=m;++i)
            t+=log10(i*1.0);
            ans=int(t)+1;
        cout<<ans<<endl;
    }
    return 0;
}

dawei

【声明】:乐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。