PersonalCorpus 版 (精华区)
153627 04:50:11 4 Mar 2002
Bozhang,HIT,P.R.China 1055 Pascal Accepted 1.552 sec 82K
var
p:array[1..5133] of word;
sum:array[1..5133] of integer;
a,b,i,j,k,m,n:integer;
flag:boolean;
begin
p[1]:=2; k:=1;
for i:=3 to 50000 do begin
flag:=true;
for j:=1 to k do begin
if i mod p[j]=0 then begin flag:=false; break end;
if p[j]*p[j]>i then break;
end;
if flag then begin inc(k); p[k]:=i end;
end;
fillchar(sum,sizeof(sum),0);
readln(n,m); if m>n-m then begin a:=m;b:=n-m end else begin a:=n-m; b:=m
end;
for i:=a+1 to n do begin
k:=i;
for j:=1 to 5133 do begin
if k=1 then break;
while k mod p[j]=0 do begin
inc(sum[j]);
k:=k div p[j];
end;
end;
end;
for i:=2 to b do begin
k:=i;
for j:=1 to 5133 do begin
if k=1 then break;
while k mod p[j]=0 do begin
dec(sum[j]);
k:=k div p[j];
end;
end;
end;
k:=0; for i:=1 to 5133 do if sum[i]<>0 then inc(k);
writeln(k);
end.
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.230毫秒