Python中求50以内的非素数。
把if n%i!=0改为if n%i==0,然后把else分支里的打印语句,放到break前一行即可,即当n可以整除1到n-1之间的任意一个数,则n不是素数,则打印它,然后break退出循环,开始判断下一个数即可。
修改如下:
for n in range(49,1,-1):
for i in range(2,n):
# 如果n 可以整除任意一个 1到n-1之间的数,则此数不是素数,则打印它
# 然后beak退出循环,判断下一个数
if n%i==0:
print(n,end=' ')
break
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
non_primes = [x for x in range(50) if not is_prime(x)]
print(non_primes)
n%i!=0修改为n%i==0