Мне нужно распечатать ближайшее число к введенному числу. Код работает для введенных простых чисел, но не для простых чисел. См. Ниже Я относительно новый кодер, и я новичок в Python
входное значение равно 16 Ожидаемый результат - Ближайшее простое число к 16 - 17 Фактический результат - Ближайшее простое число к 16 - 18
x = int(input("Enter a number: "))
y = x-1
z = x+1
counter = 0
valid = True
while valid == True:
for i in range (2,x):
if x%i == 0:
counter += 1
if counter <= 1:
print("The closest prime to ",x," is ",x)
valid = False
counter = 0
for i in range (2,y):
if y%i == 0:
counter += 1
if counter <= 1:
print("The closest prime to ",x," is ",y)
valid = False
counter = 0
y -= 1
for i in range (2,z):
if y%i == 0:
counter += 1
if counter <= 1:
print("The closest prime to ",x," is ",z)
valid = False
counter = 0
z += 1