python-求1~100的素数

首先,什么是素数

素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。

例如:3只能被1和3整除,除此之外不能再被其他数字整除,那么3就是质数。

那么也就可以得出

设x为1~100的随机一个数

设y为2到随机出的数

条件当x%y==0为true

可得代码:

for x in range(1,101):
   for y in range(2,x):
      if x%y == 0:
         break
   else:
      print(x)

结果:

python-求1~100的素数_第1张图片

乍一看没什么大问题,但是,结果有1,那么1算不算素质(质数)呢?

python-求1~100的素数_第2张图片

那么1显然不是我们要的,所以这个代码有小问题,因为1确实符合能被1和自身整除,除此之外不能再被其他数字整除这个条件 

 所以,我们得抛开1,直接从2开始

并且这样显示的结果也不美观,所以我可以使用list接收append的形式

优化后代码:

#方法一:
num=[]
for x in range(2,101):
   for y in range(2,x):
      if x%y == 0:
         break
   else:
      num.append(x)
print(num)
#方法二:
num = []
x = 2
for x in range(2, 101):
    y = 2
    for y in range(2, x):
        if x%y == 0:
            break
    else:
        num.append(x)
print(num)
#方法三
num=[]
import math
for x in range(2,101):
    flag = True
    for y in range(2,int(math.sqrt(x))+1):
        if(x%y)==0:
           flag = False
           break
    if flag:
        num.append(x)
print(num)

结果:

你可能感兴趣的:(python,numpy,开发语言)