// original: // https://yukicoder.me/submissions/254947 #pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int c;while(c=*rp++-48,c>=0)v=v*10+c;} #define CHMUL(a,b) ((a)=(long)(a)*(b)%MOD) #define MOD 1000000007 long modinv_1000000007(long a){ long r=a; #define A r=r*r%MOD*a%MOD #define B r=r*r%MOD A;A;B;A;A;A;B;B;A;A;B;A;B;A;A;B;B;A;B;A;B;B;B;B;B;B;A;B;A; #undef A #undef B return r; } int fact[1000001],inv_fact[1000001]; void init_fact(int n) { long t; fact[0]=t=1; for (int i=0;++i=0;) { inv_fact[i]=CHMUL(t,i+1); } } int Euler_Phi(int n) { int res = n; for (int i = 2; i*i<=n; i++) { if (n % i == 0) { res -= res/i ; while (n /= i, n % i == 0); } } if (n != 1) res -= res/n; return res; } int divd[1000],divn; void getdivisor(int n) { for (int i=1;i*i<=n;++i) { if (n%i == 0) { divd[divn++]=i; divd[divn++]=n/i; } } if(divn>=2 && divd[divn-1]==divd[divn-2]) --divn; } int c[100000]; int main() { char*rp=mmap(0l,1024l*1024,1,2,0,0ll); RD(K); int N=0; int GCD = 0; for(int i=0;i=MOD?MOD:0; } printf("%d",CHMUL(ans,modinv_1000000007(N))); }