My prime sieve using Python

print("Welcome to the Sieve of Eratosthenes, where you can generate prime numbers from 1 to n  : ")
n = int(input("Enter your n :   "))
y = (y for y in range(1,n) if y*y < n)
primes = (p for p in range(2,n+1))
length = len(primes)

print(primes)

for p in range(2,len(y)+2):
    
    for i in range(2,length+1):
        if(i%p == 0 and i != p ):
            if(i in primes):
                primes.remove(i)
        
                
print(primes)
            


"""
1.)A range  //0 to 100  .x
2.)Multiples can be found using 1 to sqrt(n) .x
3.)Now eliminate all multiples. x
"""

OUTPUT

Enter your n : 20
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
(1, 2, 3, 5, 7, 11, 13, 17, 19)

So I did this by my own and also I need some suggestions on what can I do to improve the code and can you tell me how good it is?.