Простые числа - [2] уровень

Условие:
Определите, какая из цифр в десятичной записи всех простых чисел из заданного диапазона встречается чаще всего. Если таких цифр несколько, найдите наименьшую из них.

Технические условия:
Ваша программа должна считать исходные данные из файла "input.txt". В первой строке этого файла находится число A, во второй - число B. Числа A и B - целые, (1<A<B<10000). Ваша программа должна решить задачу для интервала A<=P<=B. Известно, что в этом интервале имеется хотя бы одно простое число. Ваша программа должна записать найденную цифру в файл "output.txt".

Примеры входного и выходного файлов:

Input.txt

Output.txt

10
20

1

 

Решение:
var
a,b,i,max,maxn:integer;
n:array [1..10] of integer;
f:text;
procedure add(i:integer);
var s:string;p,code,x:integer;
begin
str(i,s);
for p:=1 to length(s) do begin
val(s[p],X,code);
inc(n[X+1]);
end;
end;
function prost(i:integer):boolean;{
визначає чи і-просте число}
var j:integer;
begin
for j:=2 to (i-1) do if (i mod j=0) then if i<>2 then prost:=false;
end;
begin
assign(f,'input.txt');
reset(f);
readln(f,a);readln(f,b);
close(f);
for i:=a to b do if prost(i) then add(i);
max:=0;
for i:=10 downto 1 do begin if n[i]>= max then begin max:=n[i];maxn:=i-1;end;end;
assign(f,'output.txt');
rewrite(f);
write(f,maxn);
close(f);
end.