Python求区间正整数内所有素数之和的方法实例求区间正整数内所有素数之和的方法实例
前言前言
Python的学习记录与分享——PTA程序设计类教学平台。如果你也正在学习关于此类的题目可以仔细阅读这篇文章,了解一
下循环结构、素数的基本语法知识。
题目:题目:
7-5就区间正整数内所有素数之和就区间正整数内所有素数之和 ((20分)分)
【描述】求m-n以内所有素数之和并输出。素数指从大于1,且仅能被1和自己整除的整数。提示:可以逐一判断区间[m,n]之
间以内每个数是否为素数,然后求和。若m–n之间无素数,则输出“not have prime!”:
输入格式输入格式:
在一行输入2个正整数m,n。m可以大于n。例如计算1–100之间(包括100),可以输入100 1
输出格式输出格式:
若有素数,输出素数之和的一个整数,若该区间没有素数则输出not have prime!。
输入样例输入样例:
1 100
输出样例:
1060
答案
m, n = map(int, input().split())
sum = 0
if m > n:
m, n = n, m
for i in range(m, n+1):
if i != 1:
for j in range(2, i):
if i % j == 0:
break
else:
pass
else:
sum += i
if sum == 0:
print('not have prime!')
else:
print(sum)
详细解析:详细解析:
首先了解什么是素数
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为
只有1与该数本身两个因数的数)。
举个例子:7这个数,从2开始一直到6,都不能被它整除,只有1和它本身(7)才能被整除,所以7就是一个质数。
编写代码编写代码
1. 根据题目要求:在一行输入2个正整数m,n。
m, n = map(int, input().split())
map()会根据提供的函数对指定序列做映射。它的返回结果是一个列表在
—-这里的作用就是将多个输入值批量转换成in—-
split()方法指定分隔符对字符串进行切片,如果参数num 有指定值则仅分隔 num 个子字符串
—-这里的作用就是将输入的一条字符串以空格为分隔符切割—-
评论10