############################################################### #https://atcoder.jp/contests/abc249/submissions/71937223 import math def smallest_prime_facror(n): res=list(range(n+1)) for i in range(2,int(math.isqrt(n))+1): if res[i]==i: for j in range(i*i,n+1,i): if res[j]==j: res[j]=i return res spf=smallest_prime_facror(10000000) def prime_factorization(n): factors={} current=n while current>1: factors[spf[current]]=factors.get(spf[current],0)+1 current//=spf[current] return factors def divisors(n): factors=prime_factorization(n) divs=[1] for p,e in factors.items(): m=len(divs) mul=1 for _ in range(e): mul*=p for i in range(m): divs.append(divs[i]*mul) return divs ############################################################### N=int(input()) ans=1 meb=[1,1] for k in range(2,N+1): p=spf[k] if k%(p*p)==0: meb.append(0) else: m=-meb[k//p] meb.append(m) ans+=m print(ans)