Pagini recente » mirceaundeesimularea | Cod sursa (job #553617) | Cod sursa (job #2190952) | Cod sursa (job #756784) | Cod sursa (job #6871)
Cod sursa(job #6871)
Program diviz;
var f,g:text;
n,k,nc:longint;
a,b,nr,i,ncif:byte;
v,st, numere:array[0..10] of 0..9;
function unic(p:byte):boolean;
var j:byte; ok:boolean;
begin
ok:=true;
for j:=1 to nr do
if numere[j]=p then begin ok:=false; break;end;
unic:=ok;
end;
Function good(p:byte):boolean;
begin
nc:=0;
for i:=1 to p do
nc:=nc*10+v[st[i]];
if (nc mod k=0) and unic(nc) then
good:=true
else good:=false;
end;
Procedure bck(p:byte);
var pval:byte;
begin
for pval:=st[p-1]-1 downto 1 do
begin
st[p]:=pval;
if p>=a then
if good(p) then begin
nr:=nr+1;
numere[nr]:=nc;
end;
if p<b then
bck(p+1);
end;
end;
begin
assign(f,'diviz.in'); reset(f);
assign(g,'diviz.out'); rewrite(g);
readln(f,k,a,b);
readln(f,n);
nc:=n;
while nc<>0 do begin
ncif:=ncif+1;
v[ncif]:=nc mod 10;
nc:=nc div 10;
end;
st[0]:=ncif+1;
nr:=0;
bck(1);
write(g,nr);
close(f);
close(g);
end.