For this Question: Going through your old stuff you found a weird function F defined as : 
<b>F(N) = summation of ((N-i+1)*log(i)) for i from 1 to N</b>.
Find the maximum value of b such that <b>F(N) = c*log(a) + b</b> where a, b and c are any arbitrary non negative integers satisfying the equality.
(Note that the base of log is 10 everywhere).
Since the answer can be huge, find answer % 1000000007.First line of the input contains T denoting number of test cases. 
Next T lines contains a single integer N for that test case. 

1 <= T <= 100
1 <= N <= 1000000000000000000 (10^18)Print the (maximum value of b) modulo 1000000007 such that F(N) = c*log(a) + b where a, b and c are non negative integers, for each test case in a single line.Sample input
4
1
2
5
12

Sample output
0
0
1
11

Explanation : 
F(1) = 1*log(1) = 0
F(2) = 2*log(1) + 1*log(2) = log(2)
and so on., I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;
#define ll long long
#define VV vector
#define pb push_back
#define bitc  __builtin_popcountll
#define m_p make_pair
#define infi 1e18+1
#define eps 0.000000000001
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);
string char_to_str(char c){string tem(1,c);return tem;}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
template<class T>//usage rand<long long>()
T rand() {
    return uniform_int_distribution<T>()(rng);
}
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
 
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> oset;
// string to integer stoi()
// string to long long stoll()
// string.substr(position,length);
// integer to string to_string();
 
//////////////
auto clk=clock();
#define all(x) x.begin(),x.end()
#define S second
#define F first
#define sz(x) ((long long)x.size())
#define int long long  
#define f80 __float128
#define pii pair<int,int>
/////////////

long long powerm(long long x, unsigned long long y, long long p) 
{ 
    long long res = 1;
    x = x % p;
    while (y > 0) 
    { 
        if (y & 1) 
            res = (res*x) % p; 
        y = y>>1;
        x = (x*x) % p;   
    } 
    return res; 
} 

signed main()
{
	fastio;
	#ifdef ANIKET_GOYAL
		freopen("inputf.in","r",stdin);
		freopen("outputf.in","w",stdout);
	#endif
	int t;
	cin>>t;
	int mo=1000000007;
	while(t)
	{
		--t;
		int n;
		cin>>n;
		int ans=0;
		int v=5;
		int ti=powerm(2,mo-2,mo);
		while(v<=n)
		{
			int x=n/v;
			ans+=(((n)%v+1)%mo)*(x%mo)%mo;
			ans%=mo;
			--x;
			ans+=(v%mo)*(((((x%mo)*((x+1)%mo))%mo)*ti%mo))%mo;
			ans%=mo;
			if(v*((long double)(5))>n)
				break;
			v*=5;	
		}
		cout<<ans<<"\n";
	}
	#ifdef ANIKET_GOYAL
		cout<<endl<<endl<<endl<<endl<<"Time elapsed: "<<(double)(clock()-clk)/CLOCKS_PER_SEC<<endl;
	#endif
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?