POJ 3842(质数判断)

来源:互联网 发布:展uv的软件 编辑:程序博客网 时间:2024/06/05 18:33

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.