Дан файл целых чисел. Записать в другой файл те элементы исходного файла, у
которых ровно три четных делителя.
Есть такая программа, но она выдает неправильный ответ. Помогите найти ошибку
Var f1,f2: text;
i, j, k, x: integer;
Begin
Assign(f1, 'file1.txt');
reset(f1);
Assign(f2, 'file2.txt');
Rewrite(f2);
k:=0;
While not eof(f1) do
Begin
Readln(f1,x);
for i:=2 to x do
If (x mod i=0) and (i mod 2=0) then inc(k);
if k=3 then Writeln(f2,x);
End;
Close(f1);
Close(f2);
Writeln('Второй файл содержит числа:');
Reset(f2);
While not eof(f2) do
Begin
Readln(f2,x);
Writeln(x);
End;
End.
Answers & Comments
Ответ:
Объяснение:
После строки if k=3 then Writeln(f2,x);
нужно поставить k:=0;
Var f1,f2: text;
i, k, x: integer;
Begin
Assign(f1, 'file1.txt');
reset(f1);
Assign(f2, 'file2.txt');
Rewrite(f2);
k:=0;
While not eof(f1) do
Begin
Readln(f1,x);
writeln(x);
for i:=2 to x do
If (x mod i=0) and (i mod 2=0) then inc(k);
if k=3 then Writeln(f2,x);
k:=0;
End;
Close(f1);
Close(f2);
Writeln('Второй файл содержит числа:');
Reset(f2);
While not eof(f2) do
Begin
Readln(f2,x);
Writeln(x);
End;
readln;
Close(f2);