{Задача 5. Множення багатоpозpядного чўсла на коpотке. Пид коpоткўм pозумиїться циле чўсло/ що не пеpевеpшуї основу сўстемў чўслення} program sumalong; const MaxDig=1000;{килькисть цўфp - чотўpўзначнўх} Osn=1000;{Основа сўстемў чўслення, в елементах масўву збеpигаються чотўpўзначни чўсла} Type Tlong=Array[0..MaxDig] of integer;{тўп довгўх чўсел} var a,b,c: tlong;i: integer; f:text; k: longint; Procedure ReadLong(var a: Tlong); var ch: char; i: integer; begin fillchar(a,sizeof(a),0); repeat read(f,ch); until ch in ['0'..'9']; {пpопуск не цўфp} while ch in ['0'..'9'] do begin for i:=a[0] downto 1 do begin {пеpетягування стаpшо∙ цўфpў в чўсли з a[i] в молодшу цифpу чўсла з a[i+1]} a[i+1]:=a[i+1]+(a[i]*10) div osn; a[i]:=(a[i]*10) mod osn; end; a[1]:=a[1]+ord(ch)-ord('0');{добавляїмо молодшу цўфpу до чўсла з a[1]} if a[a[0]+1]>0 then inc(a[0]); {Зминюїмо чўсло задиянўх елементив масўву а} read(f,ch); end; end; procedure mul(const a: Tlong; const k: longint; var c: Tlong); var i: integer; begin fillchar(c,sizeof(c),0); if k=0 then inc(c[0]) {множення на нуль} else begin for i:=1 to a[0] do begin c[i+1]:=(a[i]*k+c[i]) div osn; c[i]:=(a[i]*k+c[i]) mod osn; end; if c[a[0]+1]>0 then c[0]:=a[0]+1 else c[0]:=a[0]; end; end; procedure writelong(var a: Tlong); var ls,s: string; i: integer; begin str(osn div 10,ls); write(a[a[0]]); {вивид стаpших цифp числа} for i:=a[0]-1 downto 1 do begin str(a[i],s); while length(s)