// In god we trust
 
#include <bits/stdc++.h>
#include <chrono>
#include <algorithm>
#include <signal.h>
#include <thread>
#include <pthread.h>
#include <omp.h>
 
#define pb push_back
#define fi first
#define se second
#define Vi vector<int> 
#define Vb vector<bool>
#define Pi pair<int, int>
#define Si set<int> 
#define Ui unordered_map<int, int>
#define MP make_pair
#define MT make_tuple
#define Q queue
#define Qi Q<int>
#define INF 1000000000 
#define LINF 1000000000000000000
#define _USE_MATH_DEFINES
#define int long long
using namespace std;
using namespace std::chrono;



int mod_power(int x, int y, int mod){
  int ans = 1;
  x %= mod;
  while(y){
    if (y & 1)
      ans *= x, ans %= mod;
    y /= 2;
    x = (x * x) % mod;
  }
  return ans;
}

int mod_inverse(int n, int mod){
  return mod_power(n, mod - 2, mod);
}

 
// Returns factorial of n 
int fact(int n) 
{ 
    int res = 1; 
    for (int i = 2; i <= n; i++) 
        res = res * i; 
}
  
int ncr(int n, int r) 
{
  if (r > n)
    return 0;
  if (r == 0 or r == n)
    return 1;
  int fact = 1;
  for (int i = 1; i <= r; i++)
    fact *= i;
  int ans = 1;
  for (int i = n; i > n - r; i--)
    ans *= i;
  ans /= fact;
  return ans; 
} 
    

int mod_ncr(int n, int r, int mod){
  if (r > n)
    return 0;
  if (r == 0 or r == n)
    return 1;
  int fact = 1;
  for (int i = 1; i <= r; i++)
    fact *= i, fact %= mod;
  int ans = 1;
  for (int i = n; i > n - r; i--)
    ans *= i, ans %= mod;
  ans *= mod_inverse(fact, mod), ans %= mod;
  return ans;
}

unordered_map<int, int> factor(int n){
  int cnt = 0;
  unordered_map<int, int> m;
  int nn = n;
  while (!(nn & 1))
    cnt++, nn /= 2;
  if(cnt)
    m[2] = cnt;
  for (int i = 3; i <= sqrt(n); i++){
    cnt = 0;
    
    while(nn % i == 0)
      nn /= i, cnt++;
    if (cnt)
      m[i] = cnt;
  }
  if (nn > 2)
    m[nn] = 1;
  
  return m;
}

Vi divisors(int n){
  Vi front;
  Vi back;
  
  for (int i = 1; i <= sqrt(n); i++){
    if (n % i == 0)
      if (i == n / i)
	front.pb(i);
      else
	front.pb(i), back.pb(n / i);
  }
  for (int i = back.size() - 1; i >= 0 ; i--)
    front.pb(back[i]);
  return front;
}

int cnt[1500000];
signed main(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);

  double n;
  cin >> n;
  double e = 0;
  for (int i = 1; i <= n - 1; i++)
    e = e + n / i;
  cout << fixed << setprecision(10) << e << endl;
}

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> P;
ll k,a[800][800],b[801][801],key,st=-1,go=1000000000,mid;
set<ll> se,se1,se2;
vector<P> v;
map<ll,vector<ll>> vv;
ld n,ans;
ld f(ld x){
    return x*(pow(2,x)-2)/pow(3,x);
}
int main(void){
    cin>>n;
    for(int i=1;i<n;i++){
        ans+=n/ld(n-i);
    }
    cout<<setprecision(10)<<ans<<endl;
}
