#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <bitset>
#include <climits>
#include <string>
#include <cmath>
#include <bitset>
#include <complex>
#include <functional>
#include <ctime>
#include <cassert>
#include <fstream>
#include <stack>
#include <random>
#include <iomanip>

#include <fstream>


using namespace std;
typedef long long ll;
typedef long double dd;
#define i_7 (ll)(1E9+7)
//#define i_7 998244353
#define i_5 i_7-2
ll mod(ll a){
    ll c=a%i_7;
    if(c>=0)return c;
    return c+i_7;
}
typedef pair<ll,ll> l_l;
ll inf=(ll)1E18;
#define rep(i,l,r) for(ll i=l;i<=r;i++)
#define pb push_back
ll max(ll a,ll b){if(a<b)return b;else return a;}
ll min(ll a,ll b){if(a>b)return b;else return a;}
dd EPS=1E-9;
#define endl "\n"
#define fastio ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);



int main(){fastio
    ll n;cin>>n;
    dd dp[n+1];
    dp[n]=0.0;
    for(ll i=n-1;i>=1;i--){
        dp[i]=(dd)n/(n-i)+dp[i+1];
    }
    cout<<setprecision(20)<<dp[1]<<endl;
    
    return 0;
    
}






#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    cin >> N;

    double a = 0.0;
    for (int i = 1; i < N; i++) {
        a += (1.0 / (double)i);
    }
    double ans = a * (double)N;
    cout << fixed << setprecision(10) << ans << endl;
}