这个是求100以内素数,必须用函数但是我码了两种方法都运行错误,不知道哪里错了帮帮我!
你这个判断的不对啊,应该用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()
不要从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()
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()
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!