#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define setIO(x) freopen(x".in", "r", stdin), freopen(x".out", "w", stdout)
#define m_p make_pair
#define sz(x) (int)(x.size())
#define out(x) cerr << #x << " = " << x << " "
#define outln(x) cerr << #x << " = " << x << endl
#define outarr(x, l, r) {cerr << #x"[" << l << " ~ " << r << "] = "; for (int _ = l; _ <= r; ++_) cerr << x[_] << " "; cerr << endl;}

const int mod = 998244353, inv2 = 499122177;
struct Z {
	int x;
	Z() {}
	Z(int _):x(_) {}
};
Z operator + (const Z &a, const Z &b) {const int o = a.x + b.x; return o >= mod ? o - mod : o;}
Z operator - (const Z &a, const Z &b) {const int o = a.x - b.x + mod; return o >= mod ? o - mod : o;}
Z operator * (const Z &a, const Z &b) {const int o = (int)(1LL * a.x * b.x % mod); return o;}
Z& operator += (Z &a, const Z &b) {return a = a + b;}
Z& operator -= (Z &a, const Z &b) {return a = a - b;}
Z& operator *= (Z &a, const Z &b) {return a = a * b;}
template <class T> Z qpow(Z a, T b) {
	Z ans = 1;
	while (b) {
		if (b & 1) ans = ans * a;
		a = a * a;
		b >>= 1;
	}
	return ans;
}
ostream& operator << (ostream &out, const Z &a) {out << a.x; return out;}

struct mat {
	int siz;
	Z a[505][505];
	mat(int n):siz(n) {
		for (int i = 1; i <= n; ++i) {
			for (int j = 1; j <= n; ++j) {
				a[i][j] = 0;
			}
		}
	}

	void print() {
		printf("--------------\n");
		for (int i = 1; i <= siz; ++i) {
			for (int j = 1; j <= siz; ++j) printf("%4d", a[i][j].x);
			printf("\n");
		}
	}
};
mat operator * (const mat &a, const mat &b) {
	mat c(a.siz);
	for (int i = 1; i <= a.siz; ++i) {
		for (int k = 1; k <= a.siz; ++k) {
			for (int j = 1; j <= a.siz; ++j) {
				c.a[i][j] += a.a[i][k] * b.a[k][j];
			}
		}
	}
	return c;
}

bool vis[5000005];
int seq[5000005];
int main() {
	int n;
	scanf("%d", &n);
	int m = n + n;
	ll tot = 0;
	for (int i = 1; i <= n; ++i) {
		tot += m / __gcd(m, i);
	}
	printf("%lld\n", tot);
	return 0;
}
