救救孩子Python的实验题输出素数明晚就截止了

img


为什么运行出来是这个样子呀…
原题如下:
定义一个函数output_prime(n),接收一个正整数n,在函数中调用is_prime()函数,对不大于n的整数一一判定,同一行中输出不大于n的全部素数。此函数无返回值,直接输出找到的素数。

img


老师给的参考答案

你的is_prime()函数写的不对,你题目的解答代码如下:

def is_prime(n):
    if n<=1:
        return False
    for i in range(2,n):
        if n%i==0:
            return False
    return True

def output_prime(n):
    for i in range(2,n+1):
        if is_prime(i):
            print(i,end=" ")
    print()

if __name__ == "__main__":
    flag = " "
    while flag == " ":
        i = int(input("请输入一个正整数:"))
        # if要缩进到while内
        if i<=0:
            print("不要输入非正数哦")
            continue
        print("不大于{}的素数:".format(i))
        if i==1:
            print("无")
        else:
            output_prime(i)
        flag = input("按空格继续 按其他退出程序")

如有帮助,望采纳!谢谢!