1 #题目:求100之内的素数.


代码:


  2 li = []
  3 for x in range(2,101):
  4     m = 0
  5     for y in range(2,x):
  6         if x%y == 0:
  7             m = 1 
  8             break 
  9     if m == 0:
 10         li.append(x)
 11 print('1到100之内的素数是:')
 12 print(li)


运行结果:


1到100之内的素数是:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
[root@HK code_100]#


代码解释:


 #思路:对比程序12,这是第二种求素数的思路,双重循环,用条件flag判断是否是素数,如果是就加入列表li
  2 li = []                                #创建一个空列表,用来存放素数
  3 for x in range(2,101):                 # 因为1不是素数,遍历2到100所有的数
  4     m = 0                              #flag m赋值为0
  5     for y in range(2,x):               #遍历2到x-1的所有的数,如果这个范围内有数字能被x整除,说明x不是素数
  6         if x%y == 0:                   #如果x能被2到x-1中的数整除
  7             m = 1                      #将flag m赋值为1
  8             break                      #发现有一个数可以整除x就跳出循环,节省资源
  9     if m == 0:                         #内层循环结束后,如果m的值为0,说明内层循环中没有数字可以整除x,可是判定这个x是素数,如果m为1说明x被整除,不是素数
 10         li.append(x)                   #将素数添加到li列表中
 11 print('1到100之内的素数是:')
 12 print(li)                              #打印li列表,也就是打印1到100之内的素数