Listing: NUMERE.PAS program numere; var f:Text; i,n,k,m,mm:Longint; ok:Boolean; x,a:array[0..1000] of Longint; function corect:Boolean; var i,baza,rez:Longint; begin x[0]:=1; rez:=0; baza:=1; for i:=0 to k do begin baza:=baza*x[i]; rez:=rez+a[i]*baza end; corect:=rez=mm end; Begin Assign(f,'numere.in'); Reset(f); Readln(f,m); mm:=m; Readln(f,n); for i:=1 to n do Read(f,x[i]); Close(f); Assign(f,'numere.out'); Rewrite(f); k:=0; ok:=true; while (k<n)and(m<>0) do begin a[k]:=m mod x[k+1]; m:=m div x[k+1]; k:=k+1 end; k:=k-1; if (k<n)and(m=0) and corect then begin Writeln(f,'DA'); Writeln(f,k); for i:=0 to k do Write(f,a[i],' ') end else Write(f,'NU'); Close(f) End. [cuprins] |