#define _CRT_SECURE_NO_WARNINGS #define _USE_MATH_DEFINES #include "bits/stdc++.h" #define REP(i,a,b) for(i=a;i> a;}; template void reader(T& t,U& u){reader(t); reader(u);} template void reader(T& t,U& u,V& v){reader(t); reader(u); reader(v);} void writer(int a,char c) {printf("%d",a); putchar(c);} void writer(ll a,char c) {printf("%lld",a); putchar(c);} void writer(ull a,char c) {printf("%llu",a); putchar(c);} void writer(double a,char c) {printf("%.20lf",a); putchar(c);} void writer(char a[]) {printf("%s",a);}; void writer(char a[],char c) {printf("%s",a);putchar(c);}; void writer(char a,char c) {putchar(a); putchar(c);}; templatevoid writerLn(T t){writer(t,'\n');} templatevoid writerLn(T t,U u){writer(t,' ');writer(u,'\n');} template void writerLn(T t,U u,V v){writer(t,' ');writer(u,' ');writer(v,'\n');} template void writerArr(T x[], int n){int i;if(!n){putchar('\n');return;}rep(i,n-1) writer(x[i],' ');writer(x[n-1],'\n');} template void writerVec(vector x){int n=x.size();int i;if(!n){putchar('\n');return;}rep(i,n-1) writer(x[i],' ');writer(x[n-1],'\n');} vector split(const string &str, char sep){vector v;stringstream ss(str);string buffer;while(getline(ss,buffer,sep)){v.push_back(buffer);}return v;} // #define int ll bool test = 1; int dx[] = {0,0,1,-1}; int dy[] = {1,-1,0,0}; #define MAX 300000 //..................... ll mod = (int)1e9+7; signed main() { int i,j,k; int N; cin >> N; static double dp[30] = {0,1,2}; REP(i,3,N+1) { int a = 0; REP(j,1,i) REP(k,1,i) { if(j == k) continue; a += j*k; } dp[i] = dp[i-1] \ +(double)a/(i-1)/i \ +2.0/i; } writerLn(dp[N]); }