python这步最后环节总是错

做出来总比要求的少一 有点理不清逻辑了
用代码块功能插入代码,请勿粘贴截图
我的解答思路和尝试过的方法

n=int(input())
x=0
for i in range(2,n):
while n%i==0:
n=n-1
print(n)

img

n=int(input())
while True:
    for i in range(2, n):
        if n%i==0:
            break
    else:
        print(n)
        break
    n -= 1

代码如下,如有帮助,请点击一下采纳谢谢:


n=int(input())
ret = []
for i in range(2, n):
    for j in range(2, i):
        if i%j == 0:
            break
    else:
        ret.append(i)
print(max(ret))