#include using namespace std; #pragma GCC target("avx") #pragma GCC optimize("O2") #pragma GCC optimize("inline") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("unroll-loops") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-funroll-loops") #pragma GCC optimize("-fwhole-program") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("inline-functions") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-fstrict-overflow") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-fcse-skip-blocks") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("no-stack-protector") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("inline-small-functions") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("-funsafe-loop-optimizations") #pragma GCC optimize("inline-functions-called-once") #pragma GCC optimize("-fdelete-null-pointer-checks") #define ll long long #define endl "\n" #define pb push_back #define ff first #define ss second #define ii pair #define vi vector #define vii vector> #define vvi vector #define mii map #define rep(i, a, b) for (int i = a; i <= b; i++) #define _READ(name) freopen(name, "r", stdin) #define _WRITE(name) freopen(name, "w", stdout) int n; const int mx = 5e7 + 3; int sq[mx]; int mp[mx]; int spf[mx]; void Prepare() { cin >> n; } void ppc() { for (int i = 1; i < mx; i++) spf[i] = i; for (int i = 2; i * i < mx; i++) { if (spf[i] == i) { for (int j = i*i; j < mx; j += i) { if (spf[j] == j) spf[j] = i; } } } } int tinh(int x) { int y = 1; while (x > 1) { int cur = spf[x], c = 0; while (cur == spf[x]) { x /= cur; c++; } if (c%2==1) y *= cur; } return y; } void COOOOK() { ppc(); for (int i = 1; i <= n; i++) sq[i] = tinh(i); ll ans = 0; rep(i, 1, n) { mp[sq[i]]++; } rep(i, 1, n) { ans += (mp[i]*1ll*mp[i]); } cout << ans; } void Eat() { } void Wash() { } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int TEST = 1; while (TEST--) { Prepare(); COOOOK(); Eat(); Wash(); } return 0; }