Depuración de un programa de números de Python Prime

Escribí el código para un generador de números primos de Python, para generar los primeros 100 primos. Pero, de alguna manera, obtengo no primos como 22, 25, etc. en mi salida. Lo he revisado una y otra vez durante horas y todavía no puedo entender dónde me equivoqué ... ¡Por favor, ayuda!

Aquí está mi código:

from math import sqrt

y=[2]
x=3

while len(y)!=100:
   for i in range (2,int(round(sqrt(x)+1))):
     if x%i==0:
        x=x+1

     else:
        y.append(x)
        x=x+1
        break

print(y)

Respuestas a la pregunta(5)

Su respuesta a la pregunta