Найти все натуральные числа, меньше n, квадрат суммы цифр которых равен m - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите Даны натуральные числа n, m. найти все натуральные числа, меньше n, квадрат суммы цифр которых равен m.
Не поможите?

Решение задачи: «Найти все натуральные числа, меньше n, квадрат суммы цифр которых равен m»

textual
Листинг программы
(*Даны натуральные числа N и M получить все меньшие <N натуральне 
  числа квадрат суммы цифр которых равен M.*) 
program ex;
var b,k,s,p,u,l,n,m,i:integer;
begin
readln(n,m);writeln();
while (n<>0) do
  begin
    i:=n;
    while i<>0 do
     begin
     i:=i div 10;
     k:=k+1;
     end;
    i:=0;
    b:=n;
    p:=10;
    u:=1;
    s:=0;
    for i:=1 to k do
      begin
      l:=b mod p div u;
      s:=s+l;
      p:=p*10;
      u:=u*10;
      end;
    if (s*s=m) then writeln(n);
    k:=0;
    n:=n-1;
  end;
end.

Объяснение кода листинга программы

В данном коде используется язык программирования Pascal. Он предназначен для решения задач, связанных с обработкой чисел и выполнением математических операций. Переменные в коде объявлены следующим образом:

  • b - переменная типа Integer, которая будет использоваться для хранения натурального числа n;
  • k - переменная типа Integer, которая будет использоваться для хранения количества цифр в числе n;
  • s - переменная типа Integer, которая будет использоваться для хранения суммы цифр числа n;
  • p - переменная типа Integer, которая будет использоваться для хранения значения 10 в степени k;
  • u - переменная типа Integer, которая будет использоваться для хранения значения 10 в степени одной;
  • l - переменная типа Integer, которая будет использоваться для хранения остатка от деления числа n на 10;
  • n - переменная типа Integer, которая будет использоваться для хранения вводимого натурального числа;
  • m - переменная типа Integer, которая будет использоваться для хранения значения m. В начале программы считываются значения переменных n и m с помощью функции readln(). Затем происходит цикл while, который выполняется до тех пор, пока значение переменной n не станет равным нулю. Внутри цикла происходит деление числа n на 10, пока результат деления не станет равным нулю. Затем обнуляются все переменные, кроме b, и начинается новый цикл. В этом цикле происходит расчет суммы цифр числа n с использованием переменной s. Если сумма цифр равна m, то значение переменной n выводится на экран с помощью функции writeln(). После этого цикл завершается, и значение переменной n уменьшается на единицу. Цикл while повторяется до тех пор, пока значение переменной n не станет равным нулю.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы