MPRIME1 - Sum of Primes
Tác giả: ll931110
Ngôn ngữ: Pascal
Program MPRIME1;
Var
check: array[2..11000] of boolean;
a,b: array[1..11000] of integer;
n,num: integer;
Procedure Eratostene;
Var
i,k: integer;
Begin
Fillchar(check, sizeof(check), true);
For i:= 2 to trunc(sqrt(11000)) do
Begin
k:= 2 * i;
While k <= 11000 do
Begin
check[k]:= false;
k:= k + i;
End;
End;
End;
Procedure primearray;
Var
i: integer;
Begin
num:= 0;
For i:= 2 to 11000 do
if check[i] then
Begin
inc(num);
a[num]:= i;
End;
End;
Procedure counting;
Var
i,k,sum: integer;
Begin
Fillchar(b, sizeof(b), 0);
For i:= 1 to num do
Begin
sum:= a[i];
k:= i;
While (sum <= 11000) and (k <= num) do
Begin
inc(b[sum]);
inc(k);
sum:= sum + a[k];
End;
End;
End;
Procedure printresult;
Begin
Repeat
Readln(n);
If n <> 0 then writeln(b[n]);
Until n = 0;
End;
Begin
Eratostene;
primearray;
counting;
printresult;
End.