查找素数能够很好的体现出计算机解决某些数学问题的速度优势,除了计算机性能以外,设计更加简单的算法也能够提高计算机解决某些问题的速度。某种素数算法就是通过“开关”的思想,例如求100以内的所有素数,采用列表来表示[1,1,1,1,……,1,1,1],列表的索引值表示0-99中的每个数,1表示“开”即为素数(先假设都为素数),从2(0和1不是素数)开始,因为索引2号对应的值为1,则2是素数,再将后面能够被2整除的索引对应的值都改为0,依次类推……以下程序就是采用这种思路编写的输出1000以内的所有素数的程序:
lst1=[] #存放每个数的开关
lst2=[] #存放找到的素数
lst1=[1]*1000 #初始化开关列表
for i in range(2,1000):
if lst1[i]==1:
lst2.append(i)
lst1[j]=0
print(lst2) #输出所有 1000 以内的素数
上述程序横线处的合适代码为( )
- A、if lst1[j]%i==0:
- B、if lst1[i]%i==0:
- C、for j in range(i,1000,i):
- D、for j in range(i+1,1000,i):