С клавиатуры вводится N целых чисел (из интервала [10; 100]).
Требуется
1. записать все введенные числа в файл
2. открыть файл и вывести на экран все записанные в него числа (в строку)
3. найти наименьшее общее кратное компонентов, в записи которых нет цифры k.
примечание: массивы в программе не использовать
PROGRAM PRP1;
FUNCTION NOD (x,y:INTEGER):INTEGER;
BEGIN
IF x<>0 THEN NOD:=NOD(y MOD x, x) ELSE NOD:=y;
END;
function NOK(x,y:INTEGER):INTEGER;
BEGIN
NOK:=(x DIV NOD(x,y))*y;
END;
VAR f: FILE OF INTEGER;
i,
x1, x2,
m,
k,
n
:INTEGER;
BEGIN
{----------------------------1-----------------------}
REPEAT
WRITE('Имя файла - ');
READLN(name);
ASSIGN(f, name);
{$I-}
REWRITE(f);
{$I+}
UNTIL IOResult=0;
WRITE('Начинаем ввод последовательности');
WRITELN(' (конец последовательности > 10 или < 100)');
WHILE (true) DO
BEGIN
WRITE('Значение = ');
READLN(n);
IF (n <=10) OR (n >=100) THEN BREAK;
WRITE(f,n);
END;
CLOSE(f);
{-----------------------------2------------------------}
WRITELN(' В файле были написаны числа ');
RESET(f);
WHILE NOT EOF(f) DO
BEGIN
READ(f,n);
WRITE(n, ' ');
END;
WRITELN;
{----------------------------3--------------------------}
WRITE('Введите цифру k - ');
READLN(k);
WRITE('Числа, не содержащие k - ');
SEEK(f, 0);
FOR i:=0 TO FileSize(f)-1 DO
BEGIN
READ(f,n);
x1:= n DIV 10;
x2:= n MOD 10;
IF (x1<>k) AND (x2<>k) THEN
BEGIN
WRITE(n, ' ');
END;
END;
WRITELN;
END.
Первые два пункта вообще никаких проблем, выделить числа не содержащие k тоже никакой проблемы, а вот найти наименьшее общее кратное без создания массива ???