#include <bits/stdc++.h>
#define REP(i, m, n) for(int (i) = (m); (i) < (n); ++i)
#define rep(i, n) REP(i, 0, n)
#define all(x) (x).begin(), (x).end()
using namespace std;
using Graph = vector< vector<int> >;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
typedef long long ll;
typedef pair<ll, ll> P;
const int INF = 1e9+7;
const ll LINF = 1LL<<60;

int main() {
    ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

    double n;
    cin >> n;

    double res = 0.0;

    REP(i,1, n) {
        res += n / i;
    }

    cout << fixed << setprecision(10) << res << endl;


    return 0;
}
#include <bits/stdc++.h>
//#include <atcoder/all>
using namespace std;
//using namespace atcoder;
using ll =long long;
using vi = vector<int>;
using vl = vector<ll>;
using vc = vector<char>;
using vii = vector<vector<int>>;
using vll = vector<vector<ll>>;
using vcc = vector<vector<char>>;
using vs = vector<string>;
using Pi = pair<int , int>;
using Pl = pair<ll, ll>;
using vpi = vector<Pi>;
using vpl = vector<Pl>;
void scan(int& a){ scanf("%d", &a); }
void scan(unsigned& a){ scanf("%u", &a); }
void scan(long& a){ scanf("%ld", &a); }
void scan(long long& a){ scanf("%lld", &a); }
void scan(unsigned long long& a){ scanf("%llu", &a); }
void scan(char& a){ do{ a = getchar(); }while(a == ' ' || a == '\n'); }
void scan(float& a){ scanf("%f", &a); }
void scan(double& a){ scanf("%lf", &a); }
void scan(long double& a){ scanf("%Lf", &a); }
void scan(vector<bool>& a){ for(unsigned i = 0; i < a.size(); i++){ int b; scan(b); a[i] = b; } }
void scan(char a[]){ scanf("%s", a); }
void scan(int& a,int& b){scan(a);scan(b);}
void scan(int& a,int& b,int& c){scan(a);scan(b);scan(c);}
void scan(int& a,int& b,int& c,int& d){scan(a,b);scan(c,d);}
void scan(ll& a,ll& b){scan(a);scan(b);}
void scan(ll& a,ll& b,ll& c){scan(a);scan(b);scan(c);}
void scan(ll& a,ll& b,ll& c,ll& d){scan(a,b);scan(c,d);}
void print(){ putchar(' '); }
void print(bool a){ printf("%d", a); }
void print(int a){ printf("%d", a); }
void print(unsigned a){ printf("%u", a); }
void print(long a){ printf("%ld", a); }
void print(long long a){ printf("%lld", a); }
void print(unsigned long long a){ printf("%llu", a); }
void print(char a){ printf("%c", a); }
void print(char a[]){ printf("%s", a); }
void print(const char a[]){ printf("%s", a); }
void print(float a){ printf("%.15f", a); }
void print(double a){ printf("%.15f", a); }
void print(long double a){ printf("%.15Lf", a); }
void print(const string& a){ for(auto&& i : a) print(i); }
void print(int a,int b){print(a);print();print(b);}
void print(ll a,ll b){print(a);print();print(b);}
void print(int a,int b,int c){print(a,b);print();print(c);}
void print(ll a,ll b,ll c){print(a,b);print();print(c);}
void print(int a,int b,int d,int c){print(a,b,d);print();print(c);}
void print(ll a,ll b,ll d,ll c){print(a,b,d);print();print(c);}
void printe(){printf("\n");}
void printe(int a){ print(a);printe(); }
void printe(ll a){ print(a);printe(); }
void printe(char a){ print(a);printe(); }
void printe(char a[]){ printf("%s", a);printe(); }
void printe(long double a){ print(a);printe(); }
void printe(string a){ print(a);printe(); }
void printe(ll a,ll b){ print(a,b);printe(); }
void printe(ll a,ll b,ll c){ print(a,b,c);printe(); }
void printe(ll a,ll b,ll c,ll d){ print(a,b,c,d);printe(); }
void printe(int a,int b){ print(a,b);printe(); }
void printe(int a,int b,int c){ print(a,b,c);printe(); }
void printe(int a,int b,int c,int d){ print(a,b,c,d);printe(); }
#define rep(i, n) for (ll i = 0; i < n; i++)
#define REP(n) for (ll i = 0; i < n; i++)
#define repint(i, n) for (int i = 0; i < n; i++)
#define repld(i, n) for (long double i = 0; i < n; i++)
#define rep2(i, s, n) for (int i = (s); i < n; i++)
#define REP2(s, n) for (int i = (s); i < n; i++)
#define rep3(i ,j, n, m) rep(i,n)rep(j,m)
#define REP3(n, m) rep(i,n)rep(j,m)
#define sort(A) sort(A.begin(),A.end());
#define reverse(A) reverse(A.begin(),A.end());
#define k(s) cout << fixed << setprecision(s);
#define test cout<<"OK"<<endl
#define Yes print("Yes")
#define No print("No")
#define YES print("YES")
#define NO print("NO")
const long double pi=3.14159265358979323846;
const ll INF=1e18;
const int INF32=1e9;
const long long MOD=1000000007;
//const long long MOD=998244353;

int main(){
  int N;
  scan(N);
  long double ans=0;
  repld(i,N) ans+=1.0/(i+1);
  printe(ans*N-1);
}