python:素数伴侣
题目描述
若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。
输入:
有一个正偶数N(N≤100),表示待挑选的自然数的个数。后面给出具体的数字,范围为[2,30000]。
输出:
输出一个整数K,表示你求得的“最佳方案”组成“素数伴侣”的对数。
输入描述:
输入说明
1 输入一个正偶数n
2 输入n个整数
注意:数据可能有多组
输出描述:
求得的“最佳方案”组成“素数伴侣”的对数。
示例1
输入
4
2 5 6 13
2
3 6
输出
2
0
实现
# 判断是否为素数
def is_prime(number):for i in range(2, number):if number % i == 0:return Falsereturn True# 素数一定为奇数,将number分成奇偶两个列表
def odd_even():odd = []even = []for i in numbers:if i % 2 == 1:odd.append(int(i))else:even.append(int(i))return odd, even# 判断是否可以配对,记录为字典{odd(index:[even[index]])}
def group_prime():primes = {}for i in range(len(odd)):primes[i] = []for index_i, i in enumerate(odd):for index_j, j in enumerate(even):if is_prime(i + j):primes[index_i].append(index_j)else:primes[index_i].append(-1)return primes# 匹配最佳配对方案
def mate(odd_key):for index, i in enumerate(even):if primes[odd_key][index] != -1 and used[index] == 0:used[index] = 1if companion[index] == -1 or mate(companion[index]) != 0: # 已配对的伴侣是可以重新选择伴侣companion[index] = odd_keyreturn 1return 0while 1:try:n = int(input())numbers = list(map(int, input().strip().split()))odd, even = odd_even()primes = group_prime()new = []companion= [-1 for i in range(len(even))] # 已配对的素数伴侣count = 0for k, v in primes.items():used = [0 for i in range(len(even))] # 是否已被配对if mate(k):count += 1print(count)except:break
python:素数伴侣相关推荐
- python任意输入一个正整数、判断该数是否为素数_Python编程判断一个正整数是否为素数的方法,python素数...
Python编程判断一个正整数是否为素数的方法,python素数 本文实例讲述了Python编程判断一个正整数是否为素数的方法.分享给大家供大家参考,具体如下: import string impor ...
- 华为机试HJ28:素数伴侣
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和 ...
- 华为机试 素数伴侣 匹配匈牙利算法
题目描述 题目描述 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密.现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数 ...
- 华为OJ(素数伴侣)
描述 题目描述若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密.现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选 ...
- 匈牙利算法编程c语言,华为oj之素数伴侣---匈牙利算法
版权声明:本文为博主原创文章,未经博主允许不得转载. 题目描述 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密.现在密码学会请你 ...
- 华为笔试题-素数伴侣
刷到这个题目的时候想起了国庆项目的人群映射,基本类似,在这里再记录一下. 前言 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密. ...
- HJ28 素数伴侣【python3】
题目描述 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密.现在密码学会请你设计一个程序,从已有的 N ( N 为偶数)个正整数中 ...
- 素数伴侣问题—二部图最大匹配问题
题目描述 若两个正整数的和为素数,则这两个正整数称之为"素数伴侣",如2和5.6和13,它们能应用于通信加密.现在密码学会请你设计一个程序, 从已有的N(N为偶数)个正整数中挑选出 ...
- python素数(质数)分解
python素数(质数)分解 python小白,大佬请忽略- 素数(质数):除了1和和它本身,没有其他的因数的数. 输入整数n,进行素数分解. #素数只能被1和它本身整除,不能再被其它数整除,能被2整 ...
最新文章
- (C++)字符数组的四种输入输出方式
- java 手机音频播放,用Java实现音频播放
- 容量和速度是选购闪存盘的关键
- Apache - No space left on device / Failed to create proxy Mutex
- visual studio code typescript 防止 import statement 断行
- oracle删除数据库中的所有数据的拼接语句
- ios应用程序开发框架
- 正则表达式30分钟入门教程(转载)
- OpenWrt常用命令总结
- 人生每一件事都是为自己而做
- 几款引擎比较:BigWorld,Unreal,CryEngine等
- java 生成拼音_java 根据汉字生成拼音全拼或拼音首字母
- html页面调节图片大小,怎么用css设置图片大小?
- ask调制流程图_利用卷积神经网络的自动调制分类算法
- 进击的UI----------------(常见快捷键的使用)
- HTML编辑器选择什么,HTML编辑器有哪些?3款常用的编辑器推荐
- 关于项目部署在Tomcat中使用软连接之坑
- android文件管理器项目,GitHub - yangsmith/FileExplorer: android file explorer android文件管理器...
- 面向接口编程简单比较
- 袁斌:极空间家庭私有云,您的数字资产大管家
热门文章
- 手机排行榜2022前十名最新
- html5怎么制作app页面,玩转HTML5移动APP页面(动效篇)
- 比起尴尬的“免签”政策,马来西亚的美食美景要靠谱多了
- mysql ratio_to_report_ratio_to_report 分析函数求占比
- linux unix编程思想,Unix网络编程思想
- 云电脑来了,云办公有何不可
- matlab如何实现横轴坐标的放缩
- Java项目:SSH婚纱摄影工作室网站平台
- Inventor2018专业版软件安装激活教程
- 5分钟带你了解会员营销!