论坛: 编程破解 标题: 打印十万以内质数的程序(原创) 复制本贴地址    
作者: SCANDISK [scandisk]    论坛用户   登录
import math                          #import语句还没学,猜测是导入某个模块的意思.百度上找到的求平方根函数。
print("2",end='\t')                  #因为2是质数,直接打印。
a=1                                  #变量a是控制每行打印质数个数的变量。由于已经打印一个质数2,故赋值1.   
for i in range(3,100001,2):          #i变量指定待筛选质数的范围,由于偶数非质数,所以步长为2,直接跳过偶数。
    j=2                              #j变量的范围为2--(i的平方根+1),因为超出平方根部分为重复判断.比如25的平方根为5 (4*6 5*5 6*4)
    while j<int(math.sqrt(i))+1:      #小循环用于判断是否能被2-小于i自身的数整除。这里用了平方根算法来优化。
        if i%j==0:                    #如果能被j整除,则非质数,直接跳出小循环,i变量取下一个数。
            break
        j+=1
    else:
        a+=1
        if a%20==1:                  #如果一行打印满20个质数,则另起一行打印。
            print()
        print(i,end="\t")            #打印出质数。
print()                              #程序结束后换行。
       





[此贴被 SCANDISK(scandisk) 在 10月08日00时05分 编辑过]

地主 发表时间: 21-10-03 02:46

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号