不是VIP会员,不能显示答案

题目解答

题目:
求出2~1000之间长度最长的、成等差数列的素数(质数)。
例如:在2~50之间的全部素数有
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47
其中公差为1的素数数列为2, 3,其长度为2
公差为2的素数数列为3, 5, 7,其长度为3
……
程序要求:输出满足条件的素数数列。
[算法提要]:首先用筛选法求出此范围内的全部素数,存放在数组B中,然后用2个变量i,j,逐步求出满足条件的素数数列。
程序:
    Max := 0; num := 1000;
                 For i := 2 to num do 
                  b[i] := i;
                 ENDFOR
                  For i := 2  to   ______①	for i:=2 to num-1 do 或for i:=2 to sqrt(num)do______ do
                   If  ______if b[i] <>0_____   then
                                       k := i + i;
                       While k <= num do
                          B[k] := 0;
                            K := k + i
                          ENDWHILE;
                          ENDIF;
                        ENDFOR;
                       For i := 2  to  num - 1 do
                        If ________if b[i]<>0_________    then
                             J := 1;
                             D[j] := b[i];
                                For i1 := __________for i1:=i+1 to ____________   do
                                  If  b[i1] <> 0 then  
                                        Delta := ________num do _______;
                                        k := delta;
                                          While (i+k<=num)and ______delta:=i1-i; 或delta=b[i1]-b[i]______ do
                                              j := j + 1;
                                              d[j] := i + k;
                                              k := k + delta
                                           ENDWHILE;
                                           If   j >  max then begin
                                                    Max := j;
                                                    C :=d  //数组D的每个元素值
                                                          分别送放数组C的相应
                                                           元素中去//
                                             ENDIF;
                                              J := 1
                                            ENDIF;
                                        ENDFOR;
                                       ENDIF;
                                      ENDFOR;
                                   writeln('The max length is: ', max);
                                   write('The string is: ');
                                         for i := 1 to max do write(c[i],' ');
                                            writeln
                                         ENDFOR;
考点:
分析:
解答:
评论:
老师: