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


代码:


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


运行结果:


1
2
3
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] #


代码解释:


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