EVenom
В указанном тексте я подсчитывал сумму квадратов цифр числа, а тебе надо было квадрат суммы цифр. К тому же тебе нужно было только подсчитать количество таких чисел, а не выводить сами числа.
Поэтому измени код на следующий:
program prog2;
var M:Real;
x,S,n,code,i,a,k:Integer;
n_str:String;
begin
Write('Введите M: ');
Readln(M);
Write('Введите x: ');
Readln(x);
k:=0;
n:=1;
While n<M do
begin
Str(n,n_str);
S:=0;
For i:=1 to Length(n_str) do
begin
val(n_str[i],a,code);
S:=S+a; {подсчитывается сумма цифр}
end;
if sqr(S)=x then inc(k) {квадрат суммы цифр сравнивается с введенным числом x }
inc(n);
end;
Write('Количество искомых чисел=',k);
Readln;
end.
В указанном тексте я подсчитывал сумму квадратов цифр числа, а тебе надо было квадрат суммы цифр. К тому же тебе нужно было только подсчитать количество таких чисел, а не выводить сами числа.
Поэтому измени код на следующий:
program prog2;
var M:Real;
x,S,n,code,i,a,k:Integer;
n_str:String;
begin
Write('Введите M: ');
Readln(M);
Write('Введите x: ');
Readln(x);
k:=0;
n:=1;
While n<M do
begin
Str(n,n_str);
S:=0;
For i:=1 to Length(n_str) do
begin
val(n_str[i],a,code);
S:=S+a; {подсчитывается сумма цифр}
end;
if sqr(S)=x then inc(k) {квадрат суммы цифр сравнивается с введенным числом x }
inc(n);
end;
Write('Количество искомых чисел=',k);
Readln;
end.