#include <cstdio>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=205;
int n;
long double Fac[N];
long double C[N][N];
long double P[N][N];
long double F[N][N][N];
long double G[N][N];
long double d[N];

void predo(){
	d[1]=0; d[2]=1;
	for (int i=3;i<=n;i++) d[i]=(i-1)*(d[i-2]+d[i-1]);
	memset(C,0,sizeof(C));
	C[0][0]=1;
	for (int i=1;i<=n;i++)
		for (int j=0;j<=i;j++){
			if (j) C[i][j]+=C[i-1][j-1];
			C[i][j]+=C[i-1][j];
		}
	Fac[0]=1;
	for (int i=1;i<=n;i++) Fac[i]=Fac[i-1]*i;
	for (int i=0;i<=n;i++)
		for (int j=0;j<=i;j++)
			P[i][j]=C[i][j]*Fac[j];
}


int main(){
	scanf("%d",&n);
	predo();
	memset(F,0,sizeof(F));
	memset(G,0,sizeof(G));
	F[0][0][0]=1;
	G[0][0]=1;
	for (int i=1;i<=n;i++) G[0][i]=1;
	for (int i=2;i<=n;i++){
		for (int j=2;j<=i;j++)
			for (int k=1;j*k<=i;k++){
				if (k==1)
					F[i][j][k]=G[i-j][j-1]*P[n-i+j][j]/j;
				else
					F[i][j][k]=F[i-j][j][k-1]*P[n-i+j][j]/j/k;
//				printf("%d %d %d %lf\n",i,j,k,F[i][j][k]);
			}
		for (int j=2;j<=n;j++){
			G[i][j]=G[i][j-1];
			for (int k=1;j*k<=i;k++)
				G[i][j]+=F[i][j][k];
		}
	}
	long double ret=0;
	for (int j=2;j<=n;j++)
		for (int k=1;j*k<=n;k++)
			ret+=F[n][j][k]*j*k;
//	cout << d[4] << endl;
	cout << fixed << setprecision(14) << ret/d[n] << endl;
}