#ifdef _LOCAL
#define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
using namespace std;

ld solve(ll n) {
    ld res = 0;
    for(int i = 1; i < n; i++) {
        res += (ld)n / (ld)i;
    }
    return res;
}

#ifndef _LOCAL
int main() {
    ll n;
    cin >> n;
    cout << fixed << setprecision(12) << solve(n) << endl;
    return 0;
}
#endif
#include <iostream>

#include <cmath>
#include <cstring>

#include <map>
#include <set>
#include <vector>

#include <algorithm>
#include <bitset>
#include <complex>
#include <numeric>
#include <string>
#include <utility>

#define rep(i, n) for (int i = 0; i < (int)(n); ++i)

using namespace std;
using ll = long long;
using pii = pair<int, int>;
using g = vector<vector<int>>;

const int MaxA = 200;

int main()
{
	int n;
	cin >> n;
	double ans = 0;
	for (int i = 1; i < n; ++i) {
		ans += (double)n / (n - i);
	}
	printf("%.10f\n", ans);
	return 0;
}