Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
做到哭死了.....走过路过,千万不要错过帮我看看.....const q=1500; var a,b:array [0..2000] of longint; n,m:longint; procedure init; var i,j,k,l:longint; begin fillchar(a,sizeof(a),0); fillchar(b,sizeof(b),0); for i:=1 to q do a[i]:=i; for i:=2 to q div 2 do for j:=2 to q div i do a[i*j]:=0; for i:=1 to q do if a[i]<>0 then b[i]:=i; for i:=1 to q do if a[i]=0 then begin j:=i+1; while (j<q) and (a[j]=0) do inc(j); if a[j]<>0 then begin a[i]:=a[j];a[j]:=0;b[j]:=i;end; end; end; procedure main; var i,j,k,l,x,y:longint; begin while not eof do begin readln(n,m);write(n,' ',m,':');x:=0;y:=0; if b[n]<>0 then l:=b[n] else begin j:=n-1; while (j>1) and (b[j]=0) do dec(j); if b[j]<>0 then l:=b[j]; end; if 2*m>=l then begin for i:=1 to l do write(' ',a[i]); writeln;writeln; end else begin if l mod 2=0 then begin k:=2*m; x:=l div 2-k div 2+1; y:=l div 2+k div 2; end else begin x:=l div 2; y:=(l+1) div 2+1; end; for i:=x to y do write(' ',a[i]); writeln;writeln; end; end; end; begin assign(input,'a1595.in'); reset(input); init; main; close(input); end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator