def Eratosthenes(N): # 素数であるかの判定リスト IsPrime = [True] * (N + 1) # i=2,3,4,... i = 2 # i≤√Nまで⇔i^2≤Nまで while i**2 <= N: # iが素数でなければ if IsPrime[i] == False: # 次のiへ i += 1 continue # k=2,3,4,... k = 2 while i * k <= N: # iの倍数は素数でない IsPrime[i * k] = False # 次のkへ k += 1 # 次のkへ i += 1 return IsPrime l, r = map(int, input().split()) lis = Eratosthenes(3 * 10**6) cnt = 0 for a in range(l, r + 1): b = a if (a + b) % 2 == 1: if lis[a + b]: if not (a == b == 1): cnt += 1 # print(a, b) else: if lis[(a + b) // 2]: if not (a == b == 1): cnt += 1 # print(a, b) b = a + 1 if (a + b) % 2 == 1: if lis[a + b]: if not (a == b == 1): cnt += 1 # print(a, b) print(cnt)