#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#include<float.h>
#include<tuple>
#include<string.h>
#include<iomanip>
#include<stack>
#include<queue>
#include<map>
#include<deque>
#include<math.h>

using namespace std;
#define ll long long
#define rep(i,n) for(ll i=0;i<n;i++)
#define REP(i,n) for(ll i=1;i<=n;i++)
#define ALLOF(c) (c).begin(), (c).end()
#define Pa pair<ll,ll>
const ll mod=1000000007;
const ll INF=10e12;
const ll inf=-1;
ll ABS(ll a){return max(a,-a);}


int main(void){
    ll N;
    cin>>N;
    long double ans=0.0;
    REP(i,N-1){
        long double fue=0.0;
        fue+=N;
        fue/=(N-i);
        ans+=fue;
    }
    cout<<fixed<<setprecision(12)<<ans<<endl;
    return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int N = 100005;
double dp[N];

signed main() {
  int n;
  cin >> n;

  for (int i = n-1; i >= 1; i--) {
    dp[i] = dp[i+1]+(1.0)*n/(n-i);
  }
  cout << fixed << setprecision(10) << dp[1] << '\n';
}