讨论 / 水
luyao777 2010-10-24 04:20:00
点我顶贴 收藏 删除
var i,j,n,p,ans:longint;

x:array[1..20]of longint;

function ok(a:longint):boolean;

var i:longint;

begin

ok:=true;

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

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

end;

procedure dfs(dep,k,t:longint);

begin

if t=p then

begin

if ok(k) then inc(ans);

exit;

end;

if dep=n then exit;

dfs(dep+1,k+x[dep+1],t+1);

dfs(dep+1,k,t);

end;

begin

readln(n,p);

ans:=0;

for i:=1 to n do read(x[i]);

dfs(0,0,0);

writeln(ans);

end.

查看更多回复
提交回复