python求素数:
我们提供的服务有:网站制作、成都网站建设、微信公众号开发、网站优化、网站认证、叶集ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的叶集网站制作公司
def is_prime(m):
"""判断m是否素数"""
for i in range(2,int(m**(1/2))+1):
if m % i == 0:
return False
else:
return True
注意事项
定义一个函数并使用input进行范围的输入,同时将将求得的素数保存在num数组中去,便于求得在该范围内素数的总数以及对应的具体值,同时,在本程序中并没有对非法输入的值进行过多的判断,而主要就是为了实现功能。
注意在该函数当中,else是与内循环中的for搭配使用的,如果内循环是由break而终止的,那么else语句是不会被执行的。
下面是一个 Python 程序,可以实现函数 Prme(n),接收正整数 n 作为参数,判断该正整数是否为素数。
在这个程序中,我们定义了函数 Prme(n),接收一个正整数 n 作为参数。首先,我们判断 n 是否小于 2,如果是,则返回 False。然后,我们判断 n 是否等于 2,如果是,则返回 True。最后,我们使用一个 for 循环从 2 到 n-1 枚举所有的数,如果 n 能够被 i 整除,则返回 False。否则,返回 True。
具体步骤如下:
1、打开pycharm,点击file,点击new,新建一个空白的pyrthon文件:
2、这里开始编写判断素数的代码,判断素数的上限最准确的应该使用平方根取整加一,此处用到两层循环,第一层遍历0到100的数,第二层循环判断满足条件的素数。这里有一个else要注意是和for对齐而不是if对齐,如果和if对齐只要不能被2整除就会被添加到列表中了,而且会多次添加:
3、右键点击鼠标,点击“run demo”,运行编写好的python文件,在下方的控制台就可以看见输出后结果:
def is_prime(m):
"""判断m是否素数"""
for i in range(2,int(m**(1/2))+1):
if m % i == 0:
return False
else:
return True
# 求100内所有素数
for i in range(2, 100):
if is_prime(i):
print(i)
程序缩进如图所示
代码如下,缩进请参考截图:
def is_prime(n):
if n == 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
prime = [ i for i in range(1,1001) if is_prime(i) ]
for i in range(2,1001):
if i % 2 == 0:
for x in prime:
if i - x in prime:
print('{} + {} = {}'.format(i-x,x,i))
break
输出节选:
可以使用Python的for循环和if判断语句来实现:
for i in range(2,101):
flag = True
for j in range(2,i):
if i % j == 0:
flag = False
break
if flag:
print(i)
拓展:除了使用for循环和if判断语句,还可以使用Python的itertools模块中的compress函数来获取100以内的素数:
import itertools
from itertools import compress
primes = [i for i in range(2, 101) if not 0 in map(lambda x: i % x, range(2, i))]
list(compress(range(2, 101), primes))