求助 Python 4MLE
  • 板块P3912 素数个数
  • 楼主znzryb
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/10 23:34
  • 上次更新2024/7/11 09:27:25
查看原帖
求助 Python 4MLE
1368189
znzryb楼主2024/7/10 23:34

求调,用的是线性筛

def isprime(n,status_d):
   anslist=[]
   pr=1
   for i in range(2,n+1):
      if status_d[i]:
         anslist.append(i)
      for pj in anslist:
         if i*pj>n:
            break    # i*pj 超范围,退出循环
         if i%pj==0:
            status_d[int(i * pj)]=False
            break
         else:
            status_d[int(i * pj)]=False
   return anslist

n=int(input())
status_d=[True]*(n+1)
status_d[0]=status_d[1]=False

anslist=isprime(n,status_d)
print(len(anslist))
2024/7/10 23:34
加载中...