Buggy python submission (verdict: Time Limit Exceeded):
def sieve_of_eratosthenes(N):
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(N ** 0.5) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
prime_check_list = [0]*(Max_ + 1)
for i in range(1, Max_ + 1, 2):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        prime_check_list[i] = 1
for _ in range(Q):
    l, r = map(int, input().split())
    print(sum(prime_check_list[l:r+1]))

Fixed submission:
def sieve_of_eratosthenes(N):
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(N ** 0.5) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
count_list = [0]*(Max_+1)
count = 0
for i in range(Max_+1):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        count += 1
    count_list[i] = count
for _ in range(Q):
    l, r = map(int, input().split())
    print(count_list[r] - count_list[l-1])

Buggy python submission (verdict: Runtime Error):
def sieve_of_eratosthenes(N):
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(N ** 0.5) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
prime_check_list = [0]*(Max_ + 1)
for i in range(1, Max_ + 1, 2):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        a_list[i] = 1
for _ in range(Q):
    l, r = map(int, input().split())
    print(sum(a_list[l:r+1]))

Fixed submission:
def sieve_of_eratosthenes(N):
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(N ** 0.5) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
count_list = [0]*(Max_+1)
count = 0
for i in range(Max_+1):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        count += 1
    count_list[i] = count
for _ in range(Q):
    l, r = map(int, input().split())
    print(count_list[r] - count_list[l-1])

Buggy python submission (verdict: Runtime Error):
import math


def sieve_of_eratosthenes(N):
    sqrt_N = math.sqrt(N)
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(sqrt_N) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
prime_check_list = [0]*(Max_ + 1)
for i in range(1, Max_ + 1, 2):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        a_list[i] = 1
for _ in range(Q):
    l, r = map(int, input().split())
    print(sum(a_list[l:r+1]))

Fixed submission:
def sieve_of_eratosthenes(N):
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(N ** 0.5) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
count_list = [0]*(Max_+1)
count = 0
for i in range(Max_+1):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        count += 1
    count_list[i] = count
for _ in range(Q):
    l, r = map(int, input().split())
    print(count_list[r] - count_list[l-1])

Buggy python submission (verdict: Time Limit Exceeded):
import math


def sieve_of_eratosthenes(N):
    target_list = list(range(2, N+1))
    sqrt_N = math.sqrt(N)
    prime_list = []

    while True:
        min_ = min(target_list)
        if min_ >= sqrt_N:
            prime_list.extend(target_list)
            break
        prime_list.append(min_)
        i = 0
        while True:
            if i >= len(target_list):
                break
            elif target_list[i] % min_ == 0:
                target_list.pop(i)
            i += 1

    return prime_list


Q = int(input())
prime_list = sieve_of_eratosthenes(10**5)
a_list = [0]*10**5
for i in range(1, 10**5, 2):
    if i in prime_list and (i + 1) / 2 in prime_list:
        a_list[i] = 1
ans = 0
for _ in range(Q):
    l, r = map(int, input().split())
    ans += sum(a_list[l:r+1])
print(ans)

Fixed submission:
def sieve_of_eratosthenes(N):
    prime_list = [True for _ in range(N + 1)]
    prime_list[0] = False
    prime_list[1] = False
    for p in range(2, int(N ** 0.5) + 1):
        if prime_list[p]:
            for i in range(2 * p, N + 1, p):
                prime_list[i] = False

    return prime_list


Q = int(input())
Max_ = 10**5
prime_list = sieve_of_eratosthenes(Max_)
count_list = [0]*(Max_+1)
count = 0
for i in range(Max_+1):
    if prime_list[i] and prime_list[(i + 1) // 2]:
        count += 1
    count_list[i] = count
for _ in range(Q):
    l, r = map(int, input().split())
    print(count_list[r] - count_list[l-1])