Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. program Lab2_2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. System.SysUtils;
  7.  
  8. function CheckedInput: Integer;
  9. var
  10. Value: Integer;
  11. IsCorrect: Boolean;
  12. begin
  13. IsCorrect := false;
  14. repeat
  15. try
  16. Readln(Value);
  17. if (Value > 0) and (Value < 1001) then
  18. isCorrect := true
  19. else
  20. Writeln('Ошибка ввода. Введите натуральное число до 1000');
  21. except
  22. Writeln('Ошибка ввода. Введите натуральное число до 1000');
  23. end;
  24. until (isCorrect);
  25. Result := Value;
  26. end;
  27.  
  28. function DigitSummary(Number: Integer): Integer;
  29. var
  30. Sum: Integer;
  31. begin
  32. Sum := 0;
  33. while (Number > 0) do
  34. begin
  35. Sum := Sum + (Number mod 10);
  36. Number := Number div 10;
  37. end;
  38. DigitSummary := Sum;
  39. end;
  40.  
  41. var
  42. k, Nums: Integer;
  43. RealDiv: Real;
  44. begin
  45. Writeln('Данная программа находит все натуральные числа, которые в k раз больше суммы их цифр');
  46. Writeln('Введите k. Ввести необходимо натуральное число до 1000');
  47. k := CheckedInput;
  48. Writeln('Числа, в ', k,' раз большие суммы их цифр: ');
  49. for Nums := 1 to MaxInt do
  50. begin
  51. RealDiv := Nums;
  52. if (RealDiv / k = DigitSummary(Nums)) then
  53. begin
  54. Writeln(Nums);
  55. end;
  56. end;
  57. Readln;
  58. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement