365bet官网哪里找-365手游官网-365app下载365足球网站

PythonB组蓝桥杯14天冲刺省奖-幸运数

PythonB组蓝桥杯14天冲刺省奖-幸运数

1.题目描述

幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的"筛法"生成。

首先从 1 开始写出自然数 1,2,3,4,5,6,⋯

1 就是第一个幸运数。

我们从 2 这个数开始。把所有序号能被 2 整除的项删除,变为:

1 3 5 7 9⋯

把它们缩紧,重新记序,为:

1 3 5 7 9⋯

这时,3 为第 2 个幸运数,然后把所有能被 3 整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被 3 整除!!删除的应该是 5,11,17,⋯

此时 7 为第 3 个幸运数,然后再删去序号位置能被 7 整除的( 19,39,⋯)

最后剩下的序列类似:

1,3,7,9,13,15,21,25,31,33,37,43,49,51,63,67,69,73,75,79,⋯

2.输入描述

输入两个正整数 m,n, 用空格分开(m

1 20

3.输出描述

输出位于 m 和 n 之间的幸运数的个数(不包含 m 和 n )

5

4.解题思路

模拟法:模拟寻找幸运数的过程

5.代码实现

//测试用例

m = 1

n = 20

cnt = 1 //默认有一个幸运数

//生成列表,其值为m+1到n-1

list1 = list(range(m+1, n))

//模拟过程

while list1[cnt] <= len(list1): //当幸运数的值大于列表长度停止

//删除列表中被幸运数整除的序号

for j in range(len(list1),0,-1):

if j % list1[cnt] == 0:

del list1[j-1]

cnt += 1

print(cnt)

6.相关知识

range函数用于生成整数序列

语法:range(start, stop, step)

range(2, 10, 2) # 生成 [2, 4, 6, 8]

range(10, 2, -2) # 生成 [10, 8, 6, 4]

生成从 start 到 stop 之前的整数序列(即左闭右开),步长为 step。

step 可以是正数或负数,但不能为 0。

相关推荐
怎么挂ip代理(怎么使用ip理)
365bet官网哪里找

怎么挂ip代理(怎么使用ip理)

📅 07-08 🔥 368
《还珠格格》第一部取景地是哪里?一
365bet官网哪里找

《还珠格格》第一部取景地是哪里?一

📅 07-08 🔥 828
毫米到英寸换算
365app下载365足球网站

毫米到英寸换算

📅 06-30 🔥 640
小叶紫檀的金星鉴别(详细图解)
365bet官网哪里找

小叶紫檀的金星鉴别(详细图解)

📅 07-04 🔥 183