Во-первых, представленный для анализа документ должен соответствовать действующему образцу. Распознать подделку можно по внешним данным, к примеру, при наличии в бланке несуществующих в оригинале строк.
Во-вторых, убедиться в оригинальности документа можно, обратившись к изучению подлинности бланка. Так, все оригинальные бланки в официальных документах должны иметь одинаковую фактуру бумаги, единые знаки защиты (голограммы и пленки), единую серию и номер документа на всех страницах. К самому заполнению официальных бумаг тоже предъявляются строгие требования. В частности, речь идет о заполнения и используемых шрифтах. В правильно заполненном документе не должно быть исправлений и ошибок.
В-третьих, оригинальный документ, представленный специалистам для изучения, не должен иметь признаков замены фотографии, если обязательность вклеивания фотокарточки предусмотрена самим видом документа. Подлинность документа подтверждает применение оригинальных печатей с указанием реквизитов органа, удостоверившего факт выдачи официальной бумаги.
Если имеется возможность сверить фото на бланке с личностью владельца документа, что осуществляется визуальная сверка фото на документе и личности его предъявителя.
Программа:
program dividers;
var x, i, p: integer;
y: array of integer;
function dividersOf(n: integer; includeNegative: boolean := false):array of integer;
var a: array of integer;
i, k: integer;
begin
k:= 1;
if(n<0) then n:= n*(-1);
for i:= 1 to n
do if(n mod i = 0)
then begin
SetLength(a, k);
a[a.Length-1]:= i;
k:= k+1;
end;
if(includeNegative)
then a:= a.Select(x -> x*(-1)).Sorted.ToArray+a;
dividersOf:= a;
end;
begin
readln(x);
y:= dividersOf(x, true);
p:= y.Length-2;
i:= 0;
writeln('Делители числа ', x, ':');
repeat
write(y[i], ', ');
i:= i+1;
until i=p;
write(y[p+1], '.');
end.