Python求区间正整数内所有素数之和的方法实例

Phoebe ·
更新时间:2024-09-20
· 979 次阅读

前言

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 个子字符串

    ----这里的作用就是将输入的一条字符串以空格为分隔符切割----

2. 首先学会判断一个数是不是素数的代码

i=7 "用7举例" for j in range(2, i): "for循环让7除以2-7之间的数" if i % j == 0: break "如果是i除j等于0说明不是素数直接(break)结束循环" else: print("是素数")

         range(start,end,step=)-----range(开始值,结束值,步长)没写默认为1

3. 判断多个数是不是素数

定义一个i,用for循环让i在里面m-n之间取值

for i in range(m, n+1): if i != 1: “开始的条件必须是i不能等于1” for j in range(2, i): if i % j == 0: break else: pass else: sum += i “如果是就在sum里面加上这个(i)素数”

4. m、n从小到大排序

 上面的素数判断都会了后会发现一个问题就是,如果用户输入100 1时运行会发生错误那么我们则需要在判断素数前保证m是小的值,n是大的值。

if m > n: m, n = n, m

5. 输出答案

if sum == 0: “如果sum在前面的整个for循环里都没有素数加入” print('not have prime!') “那么输出'not have prime!'” else: “否则” print(sum) “输出答案” // An highlighted block var foo = 'bar';

结束

到此这篇关于Python求区间正整数内所有素数之和的文章就介绍到这了,更多相关Python区间正整数内所有素数之和内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

您可能感兴趣的文章:使用Python判断质数(素数)的简单方法讲解Python编程判断一个正整数是否为素数的方法python求素数示例分享Python求出0~100以内的所有素数Python素数检测的方法python判断所输入的任意一个正整数是否为素数的两种方法Python 判断是否为质数或素数的实例Python实现输出某区间范围内全部素数的方法Python numpy.array()生成相同元素数组的示例python素数筛选法浅析



素数 方法 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号