Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program laba2_2;
- uses
- System.SysUtils;
- function InputPath(): String;
- var
- Path: String;
- IsCorrect: Boolean;
- begin
- Writeln('Введите абсолютную ссылку на файл');
- repeat
- IsCorrect := True;
- Readln(Path);
- if not FileExists(Path) then
- begin
- IsCorrect := False;
- Writeln('Файл не найден! Введите абсолютную ссылку на файл');
- end;
- until IsCorrect;
- InputPath := Path;
- end;
- function FindSumOfDividers(Number: Integer): Integer;
- var
- Sum, I: Integer;
- begin
- Sum := 0;
- for I := 1 to Number - 1 do
- begin
- if Number mod i = 0 then
- Sum := Sum + i;
- end;
- FindSumOfDividers := Sum;
- end;
- procedure OutputToFile(Path: String);
- var
- FirstNumber, SecondNumber, I: Integer;
- NotRepeatNumbers: Boolean;
- OutputFile: TextFile;
- begin
- AssignFile(OutputFile, Path);
- Reset(OutputFile);
- Rewrite(OutputFile);
- NotRepeatNumbers := True;
- for I := 1 to 32000 do
- begin
- FirstNumber := FindSumOfDividers(i);
- SecondNumber := FindSumOfDividers(firstNumber);
- if (I = SecondNumber) and (FirstNumber <> SecondNumber) then
- begin
- if NotRepeatNumbers then
- begin
- Writeln(FirstNumber ,' и ', SecondNumber);
- Writeln(OutputFile, FirstNumber ,' и ', SecondNumber);
- NotRepeatNumbers := False;
- end
- else
- NotRepeatNumbers := True;
- end;
- end;
- CloseFile(OutputFile);
- Writeln('Информация успешно записана в файл!');
- end;
- //D:\FilesOAIP\output.txt
- procedure Main();
- var
- Path: String;
- begin
- Writeln('Программа выводит все дружественные числа до 32000');
- Path := InputPath();
- OutputToFile(Path);
- Readln;
- end;
- begin
- Main;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement