I'm new to programming. While trying to solve this problem, I'm getting the wrong answer. I checked my code a number of times but was not able to figure out the mistake. Please, help me on this simple problem. The problem is as follows:
Given a positive integer N, calculate the sum of all prime numbers between 1 and N (inclusive). The first line of input contains an integer T denoting the number of test cases. T testcases follow. Each testcase contains one line of input containing N. For each testcase, in a new line, print the sum of all prime numbers between 1 and N.
And my code is:
from math import sqrt 
sum = 0
test = int(input())
for i in range(test):
    max = int(input())
    if max==1:
        sum = 0
    elif max==2:
        sum += 2
    else:    
        sum = sum + 2
        for x in range(3,max+1):
            half = int(sqrt(max)) + 1
            for y in range(2,half):
                res = x%y
                if res==0:
                    sum = sum + x
                    break
    print(sum)     
For input 5 and 10, my code is giving output 6 and 48 respectively, while the correct answer is 10 and 17 respectively. Please, figure out the mistake in my code.
 
     
     
     
     
     
     
    