比赛 20100913 评测结果 AAAAAAAATA
题目名称 连续素数和 最终得分 90
用户昵称 1102 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-09-13 21:04:27
显示代码纯文本
  1. program xxxx;
  2. var
  3. a,b:array[1..10000] of integer;
  4. p,w,z,n:integer;
  5. f,f1:text;
  6.  
  7. procedure sushu(k:integer);
  8. var i,j,y:integer;
  9. x:real;
  10. begin
  11. x:=sqrt(k);
  12. y:=trunc(x);
  13. for i:=3 to k do
  14. for j:=2 to y do
  15. if ((i mod j)=0)and(i<>j) then
  16. a[i]:=1;
  17. end;
  18.  
  19. procedure work(k:integer);
  20. var i,j,x,y,l:integer;
  21. begin
  22.  
  23. if w>k then
  24. x:=k
  25. else
  26. x:=w;
  27. for i:=1 to x do
  28. begin
  29. j:=i;
  30. y:=0;
  31. repeat
  32. begin
  33. y:=y+b[j];
  34. inc(j);
  35. end
  36. until y+b[j]>k;
  37. if y=k then
  38. z:=z+1;
  39. end;
  40. end;
  41.  
  42. begin
  43. assign(f,'conprime.in');
  44. reset(f);
  45. assign(f1,'conprime.out');
  46. rewrite(f1);
  47. w:=0;
  48. for p:=2 to 10000 do
  49. a[p]:=0;
  50. sushu(10000);
  51. for p:=2 to 10000 do
  52. if a[p]=0 then
  53. begin
  54. inc(w);
  55. b[w]:=p;
  56. end;
  57. repeat
  58. begin
  59. z:=0;
  60. read(f,n);
  61. if n<>0 then
  62. begin
  63. work(n);
  64. writeln(f1,z);
  65. end;
  66. end;
  67. until n=0;
  68. close(f);
  69. close(f1);
  70. end.
  71.  
  72.