基于初等数论知识求所有素数

第一次写,先贴上以供参考:
prime_list=[2]
prime_div_list=[2]

n = int(input('请输入最大值n:'))  
i=3
div_num_max=0
a=0




while(i<=n):
    flag=0
    l=len(prime_div_list)

    
    
    while(l>0 and flag==0):
        a=prime_div_list[l-1]
        l=l-1
        if(i%a==0):
            flag=1


    if(flag==0):
        prime_list.append(i)


    l=len(prime_div_list)
    i=i+1
    div_num_max=prime_list[l]
    
    if(i>=div_num_max*div_num_max):
        prime_div_list.append(prime_list[l])


for i in prime_list:
    print(i)
print("在1与",n,"之间一共有",len(prime_list),"个素数")


你可能感兴趣的:(Python学习,素数,Python)