每天一道算法题

第一章:计算最值,次最值

第二章:进制的转换

第三章:质数,水仙花,公约数

第四章:子序列问题

首页 > 每天一道算法题 > 第三章:质数,水仙花,公约数 > 3.1节:计算次大质数

3.1节:计算次大质数

薯条老师 2021-04-05 16:00:22 234589 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python小班办得很好,学员的平均就业薪资有11K。线下小班培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

3.1.1 算法思路

首先得理解什么是质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。将质数的概念进行分解,可得到质数的以下两个特性:

① 质数是大于1的自然数

② 质数只能被1或它本身整除。

由以上性质就很容易判断某一个数是否为质数:如果该数小于等于1,那么一定不是质数; 如果该数大于1,但是能被除1和本身之外的数整除,那么同样也不是质数

在判断是否能被其它数整除时,只需将范围缩小到2与该数之间的一个区间即可,因为大于该数的数一定不会被整除。

判断出是否为质数以后,再计算所有质数的次大质数。这其实就是个计算次大值的问题,关于计算次大值的算法逻辑,同学们可参考在for循环中计算次小值的代码实现:http://chipscoco.com/?id=212

3.1.2 算法实现

# __author__ = 薯条老师

import random

numbers = [random.randint(2,  10**4) for _ in range(10)]
print("大于1的10个随机数:{}".format(numbers))
max_2th_prime_number = max_prime_number = None


for number in numbers:
    for _ in range(2, number):
        if number % _ == 0:
            break
    else:
        if max_prime_number is None:
            max_prime_number = number
        elif number > max_prime_number:
            max_2th_prime_number = max_prime_number
            max_prime_number = number
        elif max_2th_prime_number is None or _ > max_2th_prime_number:
            max_2th_prime_number = number
else:
    print("最大质数:{}\n次大质数:{}".format(max_prime_number, max_2th_prime_number))

3.1.3 最具实力的小班培训

来这里参加Python和Java小班培训的学员大部分都找到了很好的工作,平均月薪有11K,学得好的同学,拿到的会更高。由于是小班教学,所以薯条老师有精力把每位学员都教好。打算参加线下小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:


欢迎 发表评论: