program cpfs; type TCPF = ^ptcpf; ptcpf = record cpf : string; prox : TCPF; end; procedure inserirCPF(); var i:integer; begin end; function validarCPF(var cpf:string):boolean; var i, soma, dig1, dig2:integer; begin soma:=0; for i:=1 to 9 do //ord('0')=48... ord('1')=49... dai -48 vira 0... *11-i, vai decrementando, *9, *8, *7... soma:=soma+(Ord(cpf[i])-48)*(11-i); dig1 := 11 - (soma mod 11); //digito 1 pega a sobra da divisao bla bla if (dig1 = 10) or (dig1 = 11) then dig1 := 0; soma := 0; for i := 1 to 10 do soma := soma + (Ord(cpf[i])-48)*(12-i); dig2 := 11 - (soma mod 11); if (dig2 = 10) or (dig2 = 11) then dig2 := 0; ValidarCPF := (dig1=(Ord(cpf[10])-48)) and (dig2=(Ord(cpf[11])-48)); end; var hash : array[0..99] of TCPF; cpf:string; bool:boolean; begin readln(cpf); bool:= validarCPF(cpf); writeln(bool); end.