NOIP2012普及组复赛解题报告.doc
文本预览下载声明
NOIP2012普及组复赛解题报告
第一题:筛选法求素数。
var a:array[1..50000]of boolean;
x,y,i,j,n:longint;
begin
assign(input,#39;prime.in#39;); reset(input);
assign(output,#39;prime.ans#39;); rewrite(output);
readln(n);
fillchar(a,sizeof(a),true);
for i:=2 to trunc(sqrt(50000)) do
if a[i] then
for j:=2 to 50000 div i do
a[i*j]:=false;
for i:=2 to 50000 do
if a[i] and (n mod i=0) then
begin writeln(n div i); break; end;
close(input); close(output);
end.
第二题:模拟法,因为指示牌上的数字较大,可先统计每层有楼梯的个数,再取余。 var a,b:array[0..10000,0..100]of longint; x,y,i,j,k,n,m,s,t,w:longint;
c:array[1..10000]of integer;
begin
{ assign(input,#39;c:\1.in#39;); reset(input);}
显示全部