如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
URAL/1086
来自"NOCOW"
< URAL
素数刷选素数
var i,j,k,l,m,n,x,y:longint; f:array[1..15000]of longint; t:boolean; begin f[1]:=2;n:=1; for i:=2to 15000do begin m:=f[n];t:=false; while not t do begin inc(m); for j:=1to n do begin if m mod f[j]=0 then break; if j=n then t:=true; end; end; inc(n);f[n]:=m; end; readln(n); for i:=1to n do begin readln(m); writeln(f[m]); end; end.
VAR f:array [1..163841] of boolean; prime:array [1..15000] of longint; i,m,n,t:longint; j,k,p:int64; BEGIN t:=1; prime[1]:=2; for i:=1 to 81920 do BEGIN k:=i+i+1; if not f[k] then BEGIN j:=k; inc(t); prime[t]:=k; while true do BEGIN p:=j*k; if p>163841 then break; f[p]:=true; inc(j,2); END; END; END; readln(m); for i:=1 to m do BEGIN readln(n); writeln(prime[n]); END; END.
const maxp=165000; var p:array [2..maxp] of boolean; a:array [1..16000] of longint; i,j,k:longint; begin fillchar(p,sizeof(p),true); for i:=2 to trunc(sqrt(maxp)) do if p[i] then begin j:=i+i; while j<=maxp do begin p[j]:=false; inc(j,i) end; end; k:=0; for i:=2 to maxp do if p[i] then begin inc(k); a[k]:=i end; read(k); for i:=1 to k do begin read(j); writeln(a[j]) end; end.