Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Lab2;
- Uses
- System.SysUtils;
- Function CountSumNumbers(Number: Integer): Integer;
- Var
- Sum: Integer;
- Begin
- Sum := 0;
- While Number <> 0 Do
- Begin
- Sum := Sum + Number mod 10;
- Number := Number div 10;
- End;
- Result := Sum;
- End;
- Function InputK(): Integer;
- Var
- K: Integer;
- IsCorrect: Boolean;
- Begin
- Repeat
- Writeln('Введите k в диапазоне [1; 200 000]:');
- IsCorrect := True;
- Try
- Readln(K);
- Except
- Writeln('Ошибка ввода. Введите натуральное число.');
- IsCorrect := False;
- End;
- If IsCorrect And ((k < 1) Or (k > 200000)) Then
- Begin
- Writeln('Ошибка ввода. Введите натуральное число.');
- IsCorrect := False;
- End;
- Until IsCorrect;
- Result := K;
- End;
- Function SearchBorder(K: Integer): Integer;
- Var
- Pot, I: Integer;
- Begin
- Pot := 1;
- I := 1;
- For I := 1 To 10 Do
- Begin
- If Pot > 9 * I * K Then
- Begin
- Result := Pot;
- Exit;
- End;
- Pot := Pot * 10;
- End;
- End;
- Procedure PrintAllResultNumbers(K: Integer; Border: Integer);
- Var
- I: Integer;
- Begin
- For I := 1 To Border Do
- If I = K * CountSumNumbers(I) Then
- Writeln(i);
- End;
- Var
- K, Border: Integer;
- Begin
- Writeln('Программа выводит все натуральные числа, которые в k раз больше суммы своих цифр.');
- K := InputK();
- Border := SearchBorder(K);
- Writeln('Искомые числа:');
- PrintAllResultNumbers(K, Border);
- Readln;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement