Даны натуральные числа n, m. Найти все натуральные числа, меньшие n, квадрат суммы цифр которых равен m — Pascal(Паскаль)

uses crt;
var n,m,i,j:1..maxlongint;{натуральные числа 0т 1 до 2 147 483 647}
    k,s,l:byte;{целые числа от 0 до 255}
begin
clrscr;
repeat
write('n=');readln(n);
until n>0;
repeat
write('m=');readln(m);
until (m>0)and(frac(sqrt(m))=0);{вводим до тех пор пока m не будет квадратом целого числа}
k:=0;
for i:=1 to n-1 do{меньше n}
  begin
   s:=0;{сумма цифр}
   j:=i;{число}
   while j<>0 do{пока не ноль}
    begin
     l:=j mod 10;{отделяем цифры с конца}
     s:=s+l;{считаем сумму}
     j:=j div 10;{беремчисло без последней цифры и все повторяем}
    end;
   if s*s=m then{если сумма=m}
     begin
      k:=1;{фикситруем}
      writeln(i);{выводим число}
     end;
  end;
if k=0 then write('Takih chisel net!');{если нет}
readln
end.

Leave a Comment

11 − = 9