Python素数问题

def tong(n: int):
#编写一个 Python 函数程序,获取用户输入的正整数 n,统计从 0-n 之间的最大的 10 个素数列表,以从小到大排序。
    a = [2]#最小的素数2
    flag = ""#标志变量
    for i in range(3, n+1):
        j = 2
        while j < i:
            if i % j == 0:
                flag = 0
                break
            else:
                j += 1
        if flag != 0:
            a.append(i)
    print(a[:-11:-1])#输出后十位


N = eval(input())
tong(N)



img

????????????????????

flag变量位置不对,修改如下,记得采纳哦!

def tong(n: int):
    a = [2]
    for i in range(3, n+1):
        flag = 1
        for j in range(2, i):
            if i % j == 0:
                flag = 0
                break
        if flag == 1:
            a.append(i)
    print(sorted(a)[-10:])  # 从小到大排序后输出后十位


N = eval(input("请输入正整数n:"))
tong(N)

你这flag要复位啊。不然一次为0,终身为0啊

def tong(n: int):
#编写一个 Python 函数程序,获取用户输入的正整数 n,统计从 0-n 之间的最大的 10 个素数列表,以从小到大排序。
    a = [2]   #最小的素数2
    flag = 1 #标志变量
    for i in range(3, n+1):
        j = 2
        flag = 1  #对每个i判断时,都要将flag复位为1
        while j < i:
            if i % j == 0:
                flag = 0
                break
            else:
                j += 1
        if flag != 0:
            a.append(i)
    print(a[:-11:-1])#输出后十位
 
 
N = eval(input())
tong(N)