Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const long long int mod=1e9+7;
- long long int two[1000005],fact[1000005];
- void kajkoro()
- {
- long long int two0=1,fact0=1;
- fact[0]=1;
- for(int i=1;i<=1000000;i++)
- {
- two[i]=(two0=(two0*2)%mod);
- fact[i]=(fact0=(fact0*i)%mod);
- }
- }
- long long int modivide(long long int x,long long int n,long long int M)
- {
- long long int result=1;
- while(n>0)
- {
- if(n % 2 ==1)
- result=(result * x)%M;
- x=(x*x)%M;
- n=n/2;
- }
- return result;
- }
- int main()
- {
- kajkoro();
- int tc;cin>>tc;
- for(int t=1;t<=tc;t++)
- {
- long long int n;
- cin>>n;
- long long int sum=1,cas,up=fact[n],down;
- for(long long int i=1;i<=(n/2);i++)
- {
- down=(((two[i]*fact[n-2*i])%mod)*fact[i])%mod;
- cas=(up*(modivide(down,mod-2,mod)%mod))%mod;
- sum=(sum+cas)%mod;
- }
- cout<<"Case "<<t<<": "<<sum<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement