问题 4299 --4. 聪明的小李

4299: 4. 聪明的小李

题目描述

  小李是希望小学六年级的学生,在一次数学课上,张老师出了一道题,小李很快就答出来了。这个题目是这样的:给定一个正整数N,请求出2~N之间长度最长的、成等差数列的素数(质数)。例如:当N的值为40时,在2~40之间的全部素数有: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37。其中公差(每两个数之间的差)为1的素数数列为2, 3,其长度(素数的个数)为2, 公差为2的素数数列为3, 5, 7,其长度为3. ……  。

输入

数据从文件sushu.in中读入,只有一个正整数N(2<N<=10000)。

输出

数据输出到文件sushu.out中,第一行只有一个数t,表示2~N之间长度最长的、成等差数列的素数(质数)的个数,第二行有t个数,表示符合条件的素数数列,两个数之间用空格隔开(如果最长长度相同的素数列有多种方案,则输出第一个数数值最小的那个数列)。

样例输入输出

输入#1 复制
40
输出#1 复制
5
5 11 17 23 29

提示

提示 :
1、所谓等差数列就是每两个数之间的差都相等的一列数。
2、本题算法可为:首先用筛选法求2-N之间的全部素数,存放在数组B中,然后用2个变量i,j分别表示数列的第一个数和公差,将求出的每个素数尝试作为素数列的第一个数,公差逐步增大,从而求出满足条件的素数数列。


序号 标题 作者 发表时间 费用 订购数 操作