咱有个十分简单的问题要问,这个为啥运行不了?必须用return0和return1吗?

这个是求100以内素数,必须用函数但是我码了两种方法都运行错误,不知道哪里错了帮帮我!

img

img

你这个判断的不对啊,应该用flag标志每次的

def sushu() :
    for i in range(2,101):
        flag=1
        for j in range(2,i):
             if i%j==0:
                 flag=0
        if flag==1:
            print(i,end=" ")
sushu()

img

不要从1开始啊,从2开始。任何数求余1结果都是0,这样所有数都不是质数啦
当i%j==0时,表明当前的i不是质数。可以break。但不能return啊。你还得继续判断下一个数呢。然后当内层循环结束时,判断i和j是否相等,如果想等,说明i是质数,将i记录到质数数组

def sushu():
    list=[ ]
    for i in range(2,101):
        flag = 0
        for j in range(2,i):
            if i%j==0:
                flag = 1
                break;
        if flag == 0:
            list.append(i)
    print(list)
 
sushu()

img


def sushu():
    for i in range(2,101):
        for j in range(2,i):#合数指含有大于等于2的因子,不包括本身
             if i%j==0:#说明不是素数
                 break#跳出循环
        else:#正常结束循环,i是素数
            print(i,end=' ')

sushu()

把你的代码改成正确的了,望采纳

素数的判断不能这样来吧


def sushu():
    for i in range(2, 101):
        t = True
        for j in range(2, i):
            if i % j == 0:
                t = False
                break
        if t:
            print(i, end = " ")

sushu()
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632