【Python训练营】Python每日一练----第4天:等差素数列

简介: 【Python训练营】Python每日一练----第4天:等差素数列


网络异常,图片无法展示
|

📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅CSDN Python领域优质创作者,大二在读,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++) 💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺 🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈 🌟🌟🌟✨✨✨

前言:【Python训练营】是针对Python语言学习所打造的一场刷题狂欢party! 对基础知识把握不牢固的话,欢迎参考此套课程:Python公开课 搭配使用最佳嗷~喜欢的话就抓紧订阅起来吧!🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡

@TOC

题目描述

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

2,3,5,7,11,13,....2,3,5,7,11,13,.... 是素数序列。 类似:7,37,67,97,127,1577,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为 3030,长度为 66。 20042004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果! 有这一理论为基础,请你借助手中的计算机,满怀信心地搜索: 长度为 10 的等差素数列,其公差最小值是多少?

运行限制 最大运行时间:1s 最大运行内存: 128M

解题思路

  • 首先写出一个函数来确定是否为素数,然后创建一个空列表存储每次的差值
  • 找第一个素数,然后再由大到小取最小的差值,遍历此差值下的后9个数据,for k in range(i+j,i+j*11,j):如果都是素数则满足条件,跳出此素数的循环,遍历下一个素数。
  • 最后如果num不为空,则用用min()取num列表中最小的数据。

源码分享

# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
# @Time    : 2022/1/20 20:40
# @Author  : 是Dream呀!
# @File    : 等差素数列.py
# 设置函数判断是否为素数。
def sushu(n):
    k = int(n ** 0.5)
    for i in range(2,k+1):
       if n%i == 0:
           return False
    return True
num = []
for i in range(3,100,2):# 第一个素数
    if sushu(i):
        for j in range(1,1000):# 设置一个方差
            a = 0  # 设置参数a来统计等差素数的个数
            for k in range(i+j,i+j*11,j):# 后9个数
                if sushu(k):
                    a += 1
                    if a == 9:
                        num.append(j)
                        break
if len(num) == 0:
    print('no')
else:
    print(min(num))

学习总结

1.for else结构中,for循环遇到break退出之后就不会再运行else语句,只有在for循环中中没有break结束语句,才会运行else语句。2.判断素数时,遍历的范围大小:k = int(n ** 0.5) for i in range(2,k+1):这样设置,可以大大减少运行时间,更好的满足所需时间限制。

目录
相关文章
|
4月前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
128 2
|
4月前
|
Python
【Python】已解决:(pandas读取DataFrame列报错)raise KeyError(key) from err KeyError: (‘name‘, ‘age‘)
【Python】已解决:(pandas读取DataFrame列报错)raise KeyError(key) from err KeyError: (‘name‘, ‘age‘)
214 0
|
5月前
|
Python
【Python 训练营】N_17 冒泡排序
【Python 训练营】N_17 冒泡排序
27 2
|
5月前
|
Python
【Python 训练营】N_14 文件查找和替换
【Python 训练营】N_14 文件查找和替换
27 2
|
5月前
|
Python
【Python 训练营】N_13 遍历字符串
【Python 训练营】N_13 遍历字符串
41 2
|
5月前
|
Python
【Python 训练营】N_5 斐波那契数列
【Python 训练营】N_5 斐波那契数列
29 2
|
5月前
|
Python
【Python 训练营】N_16 二分法查找
【Python 训练营】N_16 二分法查找
22 1
|
5月前
|
Python
【Python 训练营】N_15 列表元素去重
【Python 训练营】N_15 列表元素去重
33 1
|
5月前
|
Python
【Python 训练营】N_12 打印菱形图案
【Python 训练营】N_12 打印菱形图案
40 1
|
5月前
|
Python
【Python 训练营】N_11 模拟进度条
【Python 训练营】N_11 模拟进度条
21 1