program sujet2; uses wincrt; var n:string; function test (ch:string):boolean; var j:integer; begin j:=1; while (ch[j] in ['0'..'9']) and (j<=length(n)) do j:=1+j; test:= (j>length(ch))and(length(ch)=15); end; procedure saisir(var n:string); begin repeat writeln('Donner un IEMI (Nombre de 15 Chiffres): '); readln(n); until test(n); end; function verif (ch:string):boolean; var s,i,d,e:integer; begin s:=0; for i:=1 to length(ch) do begin val(ch[i],d,e); if i mod 2=0 then begin d:=d*2; if d>=10 then d:= d div 10 + d mod 10; end; s:=s+d; end; verif := s mod 10 = 0; end; begin saisir(n); if verif (n) then writeln(n,' est un IEMI valide') else writeln(n,' n''est pas un IEMI valide'); end.