pig508 2008-11-12 03:49:00
点我顶贴
收藏
删除
我们学校居然有人用全排列做..........
var
a,b,x,z:array[1..10000] of longint;
s:array[1..10000,1..100] of longint;
i,j,k,l,n,m,q,max:longint;
c:boolean;
begin
readln(n,m);
for i:=1 to n do
read(a[i]);
begin
for i:=1 to m do
begin
z[i]:=i;
b[i]:=n-m+i;
end;
k:=m;
q:=0;
repeat
if k=m then
begin
inc(q);
for j:=1 to n do
s[q,j]:=z[j];
end;
if z[k]<b[k] then
begin
z[k]:=z[k]+1;
if k<m then for k:=k+1 to m do z[k]:=z[k-1]+1;
end
else dec(k);
until k=0;
end;
for i:=1 to q do
for j:=1 to m do
x[i]:=x[i]+a[s[i,j]];
for i:=1 to q do
begin
c:=true;
for j:=2 to trunc(sqrt(x[i]))+1 do
if x[i] mod j=0 then
begin
c:=false;
break;
end;
if c=true then inc(max);
end;
writeln(max);
end.