# 確率が独立でなく従属なケース # たとえば8 # 2のときに倍数を除くのを忘れていれば、4も8も生きている # 4が生きている場合、死んでいる場合の場合分けは必要ない N, p = map(float, input().split()) N = int(N) is_prime = [1]*(N+1) is_prime[0] = 0 is_prime[1] = 0 div_count = [0]*(N+1) for p in range(2, N+1): for q in range(2*p, N+1, p): is_prime[q] = 0 div_count[q] += 1 EV = 0 for i in range(2, N+1): EV += 1/(2**div_count[i]) print(EV)