欢迎光临散文网 会员登陆 & 注册

Python编程算法【三十九】要发就发

2023-04-14 21:02 作者:SPC编程爱好者  | 我要投稿

【案例内容】

“1898——要发就发”。请将不超过1993的所有素数从小到大排成第一行,第二行上的每个数都等于它上面相邻两个素数之差。编程求出:第二行数中是否存在若干个连续的整数,它们的和恰好为1898?假如存在的话,又有几种这样的情况?两行数据分别如下:
第一行:2,3,5,7,11,13,17…...1979,1987,1993
第二行:1,2,2,4,2,4…...8,6


【解题思路】

本题的解题思路:可以用4个函数分别解决相应的操作任务。
1. 判断一个数是否为素数;
2. 找出1993内的素数,并存入列表
3. 计算相邻两素数之差,也存入列表;
4. 用递归函数计算第3步的列表中,是否存在在某一段的素数相加,其和会等于1898,如果有就将这段素数作为列表存入到一个新的列表中。
最后,做个验证,把新列表中的各个素数段打印输出,并求和,看看是否等于1898。


【Python代码】

前两个函数的功能
后两个函数的功能
最后打印输出验证

根据验证的结果可知,总共能找到三个素数段,也就是确实存在若干个连续的整数,它们的和恰好为1898,而且有三种这样的素数段。至此成功验证了题目的猜想。


Python编程算法【三十九】要发就发的评论 (共 条)

分享到微博请遵守国家法律