讨论 / 貌似是水题,还是错了。。。。。
dong 2009-05-19 07:50:00
点我顶贴 收藏 删除
我用组合+判素,不知道哪错了,就40。

program rq67;

var n,k,i,ans,sum:longint;

a,b,c:array[1..20]of longint;

function ss(x:longint):boolean;

var i:longint;

begin

for i:=2 to trunc(sqrt(x)) do

if (x mod i)=0 then exit(false);

ss:=true;

end;

procedure dfs(x:longint);

var sum:longint;

begin

if x=0 then exit;

inc(b[x]);

while (b[x]<=c[x]) do

begin

sum:=0;

for i:=1 to k do sum:=sum+a[b[i]];

if ss(sum) then inc(ans);

inc(b[x]);

end;

dec(b[x]);

dfs(x-1);

end;

begin

readln(n,k);

for i:=1 to n do

begin

read(a[i]);

b[i]:=i;

c[i]:=n-k+i;

end;

for i:=1 to k do sum:=sum+a[b[i]];

if ss(sum) then inc(ans);

dfs(k);

writeln(ans);

end.

查看更多回复
提交回复