python - Eratosthenes 筛法当数字为素数时打印“1”而不打印“0”

python - sieve of Eratosthenes when number is prime print "1" when not print "0"

我必须创建一个函数 f(n),当数字为素数时,其值为 1,而当数字不是素数时,其值为 0。 代码正在运行,但打印顺序相反。 例如:f(6)= 0 0 1 1 0 1 0

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

def f(n):
    print('0', end=' ')
    a=1
    while a<=n:
        n=n-1
        print('1' if prime(n) else '0', end=' ')

f(6)

像这样反转循环:

def f(n):
  print('0')
  for a in range(1, n+1):
    print('1' if prime(a) else '0')

PS 我在 Stack Overflow 的 python 中看到了如何 实际上 实现埃拉托色尼筛法的好例子,值得寻找更好的解决方案.