您的位置:首页 > 其它

POJ 3842(质数判断)

2012-09-24 21:34 295 查看
7!=5040

所以这题直接求质数比打一千万的表都快

这提高诉我们阶乘其实不算大&看(算)清数据规模

Program cc;
var
n,t,len,i,j,ans:longint;
s:string;
b:array[0..9] of longint;
procedure dfs(p,l:longint);
var
i:longint;
begin
if l=len then
begin
if p=1 then exit;
for i:=2 to trunc(sqrt(p)) do if (p mod i=0) then exit;
inc(ans);
exit;
end;
for i:=0 to 9 do
if b[i]>0 then
begin
if (i=0) and (l=0) then continue;
dec(b[i]);
dfs(p*10+i,l+1);
inc(b[i]);
end;

end;
begin
readln(t);
while (t>0) do
begin
readln(s);
len:=length(s);
fillchar(b,sizeof(b),0);
for i:=1 to len do inc(b[ord(s[i])-48]);
ans:=0;
for i:=1 to len do
begin
dfs(0,0);
dec(len);
end;
writeln(ans);

dec(t);
end;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: