成都创新互联网站制作重庆分公司

python函数素数求和,python素数求和代码

python求1~100之间的所有素数之和

解题思路:需要实现两个函数,一个是判断数字是否是素数;一个是求和函数。

创新互联是一家专业的成都网站建设公司,我们专注网站建设、成都网站设计、网络营销、企业网站建设,买友情链接1元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

实现函数,判断是否是素数,is_prime,具体代码如下:

def is_prime(num):

"""

判断是否是素数.

:param num:

:return:

"""

result = True

# 质数大于 1

if num 1:

  # 查看因子

  for i in range(2, num):

      if (num % i) == 0:

          result = False

          break

  else:

      result = True

# 如果输入的数字小于或等于 1,不是质数

else:

  result = False

return result

实现函数,计算数字start到end之间的所有素数之和,sum,具体代码如下:

def sum(start, end):

"""

求闭区间[start, end]之间的素数之和.

:param start:

:param end:

:return:    """

result = 0;

for i in range(start, end + 1):

  if is_prime(i):

      print(i)

      result = result + i

return result

在main函数中调用求和,代码如下:

if __name__ == '__main__':

num = 8

print(is_prime(num))

num = 5

print(is_prime(num))

print(sum(1, 5))

完整 代码如下:

python100以内的素数之和

解析如下:

#找出100内所有素数

ls = [];

for i in range(100):

if i 2:

continue;

#难点:

#1.range(2,2) 返回空值,直接跳过循环,未执行break,else语句会被执行

#2.for.j循环执行完毕后,如果未找到满足i%j==0的数值,证明其是素数,break不会被执行,else会被执行;如果找到i%j==0的数值,证明其不是素数,break会被执行,else则不会被执行;

for j in range(2, i):   

if i%j == 0:

#print("{0}不是素数".format(i));

break;

else:

#print("{0}是素数".format(i));

ls.append(i);

print(ls);

#求和

s = 0;

for k in ls:

s += k;

print(s);

python求素数

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

注意事项

定义一个函数并使用input进行范围的输入,同时将将求得的素数保存在num数组中去,便于求得在该范围内素数的总数以及对应的具体值,同时,在本程序中并没有对非法输入的值进行过多的判断,而主要就是为了实现功能。

注意在该函数当中,else是与内循环中的for搭配使用的,如果内循环是由break而终止的,那么else语句是不会被执行的。

python用while求100以内素数并求和

# 用while求100以内素数并求和

primes = []

n = 2

while n = 100:

i = 2

while i = int(n**(1/2)):

i += 1

if n % (i - 1) == 0:

break

else:

primes += [n]

n += 1

print(primes)

print(f'100以内素数之和为{sum(primes)}')

程序缩进如图所示


分享题目:python函数素数求和,python素数求和代码
标题来源:http://cxhlcq.com/article/dssjseh.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部