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。