Pagini recente » Cod sursa (job #856249) | Cod sursa (job #2156078) | Cod sursa (job #1325141) | Cod sursa (job #912165) | Cod sursa (job #458525)
Cod sursa(job #458525)
program p1;
var f,g:text;
a,e,b,c,dd:array[1..5] of longint;
i,r,n,d,j,x,nr,ok:longint;
function multipli(w,p:longint):longint;
var s,k:longint;
begin
k:=p;s:=0;
while w div k>0 do
begin
s:=s+w div k;
k:=k*p;
end;
multipli:=s;
end;
function mult(w,p:longint):longint;
var s:longint;
begin
s:=0;
if p>2 then
while w mod p=0 do
begin
s:=s+1;
w:=w div p;
end
else
while w and 1=0 do
begin
s:=s+1;
w:=w shr 1;
end;
mult:=s;
end;
begin
assign(f,'pascal.in');reset(f);
assign(g,'pascal.out');rewrite(g);
read(f,r,d);
n:=0;
if d mod 2=0 then
begin
a[1]:=2;
while d mod 2=0 do
begin
e[1]:=e[1]+1;
d:=d div 2;
end;
n:=1;
end;
j:=3;
while j<=5 do
begin
if d mod j=0 then
begin
n:=n+1;
a[n]:=j;
while d mod j=0 do
begin
e[n]:=e[n]+1;
d:=d div j;
end;
end;
j:=j+2;
end;
for i:=1 to n do
begin
b[i]:=multipli(r,a[i]);
dd[i]:=multipli(r,a[i]);
end;
for i:=1 to r-1 do
begin
ok:=1;
for j:=1 to n do
begin
c[j]:=c[j]+mult(i,a[j]);
dd[j]:=dd[j]-mult(r-i+1,a[j]);
if b[j]-c[j]-dd[j]<e[j] then ok:=0;
end;
nr:=nr+ok;
end;
writeln(g,nr);
close(f);
close(g);
end.