3327: 质数序列
内存限制:256 MB
时间限制:3.000 S
评测方式:文本比较
命题人:
提交:8
解决:2
题目描述
由于去 NOI 的火车“ 堵” 了数不清时间, 小 Z 和小 D 打完 ETG, 闲着无聊开 始看今年的 JSOI 省选题, 并尝试着修改题目: 对于一个长度为 L ≥ 2 的序列, X :x1, x2,..., xL , 如果满足对于任意的 1 ≤ i <
j ≤ L, 均有 xi x j 为质数, 则他们把 X 称为一个“ 质数序列” 。 现在有一个长度为 N 的序列, A :a1,a2,...,aN , 他希望从中选取一个包含元 素最多的子序列, 使得这个子序列是一个质数序列。 如果元素个数相同, 则使子 序列之和最大( 在此意义下, 保证有唯一解) 。 因为他们还要 xx, 所以这个任务就交给你了。
输入
从文件 prime.in 中读入数据。 输入第一行包含一个正整数 N。 接下来一行包含 N 个正整数, 依次描述a1,a2,...,aN 。
输出
输出到文件 prime.out 中。 输出两行, 第一行一个整数 L, 表示最长质数子序列的长度, 第二行 L 个整 数从小到大输出, 表示最长质数子序列( 元素个数相同, 则使子序列之和最大) 。
样例输入 复制
3
2 3 4
样例输出 复制
2
3 4
提示
对于 30%的数据满足 N 100。 对于 60%的数据满足 N 1000 , ai 5,000,000 。 对于 100%的数据满足 N 1000 , 1 ai 15,000,000。