一、题目描述
若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的 N ( N 为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。
有一个正偶数 n ,表示待挑选的自然数的个数。后面给出 n 个具体的数字。
输出一个整数 K ,表示你求得的“最佳方案”组成“素数伴侣”的对数。
数据范围: 1≤n≤100,输入的数据大小满足 2≤val≤30000
二、输入描述
输入一个正偶数 n
输入 n 个整数
三、输出描述
求得的“最佳方案”组成“素数伴侣”的对数。
四、测试用例
测试用例1
1、输入
6
2 3 4 5 6 7
2、输出
3
3、说明
2+3=5,4+7=11,6+5=11,共3对。
本文介绍了如何解决华为在线测评(OD)中的一道算法题——素数伴侣。题目要求从给定的偶数个正整数中找出能组成最多素数伴侣对的方案。解题思路包括读取输入,存储数据,分组偶数和奇数,然后通过递归匹配找到最佳配对,最后输出素数伴侣对的数量。文章还提供了Java算法源码和运行效果展示。
订阅专栏 解锁全文
732

被折叠的 条评论
为什么被折叠?



