python函数设计与使用

问题遇到的现象和发生背景

函数isPrime()接收一个大于等于2的正整数num,判断其是否为素数,素数时返回True,否则返回False
函数main()接收一个大于等于2的正整数n,要求返回不超过n的最大素数,可以调用程序中定义的函数isPrime()

我的解答思路和尝试过的方法

isPrime()函数我写出来了,main()函数也写了,但是调用的时候总是出错,结果也不对,不知道为什么

我想要达到的结果

例如n=200时返回199,n=100时返回97,n=2时返回2

def isPrime(n):
    if n==2: return True
    for i in range(2,int(n**0.5)+1):
        if n%i == 0: return False
    return True

def main(n):
    for i in range(n,1,-1):
        if isPrime(i):return i

print(main(200))
print(main(100))
print(main(2))

你把代码发出来啊

下面是我自己写的代码,有用的话望采纳

primenumbers=[]
def main(n):
    for i in range(2,n+1):
        j=2
        for j in range(2,i):
            if i%j==0:
                break
        else:
            primenumbers.append(i)
    return primenumbers[-1]
tflist=[]
def isPrime(n):
    for i in range(2,n):
        if n%i==0:
            tflist.append("F")
        else:
            tflist.append("T")
    if "F" in tflist:
        return False
    else:
        return True
print(main(200))
print(main(100))
print(main(2))