Вот только программа выдает, что таких чисел нет )))
program Poisk;
var i, a, b, c, d: integer;
begin for i := 100 to 999 do a := sqr(i); {переменной а присваиваем квадрат числа} b := a mod 10; {переменной b присваиваем остаток основного числа. Это 1-я цифра} a := a div 10; {переменной а присваиваем целую часть основного числа} c := a mod 10; {переменной c присваиваем остаток числа. Это 2-я цифра} a := a div 10; {переменной а присваиваем целую часть числа} d := a mod 10; {переменной d присваиваем остаток числа. 3-я цифра} a := b + c + d; {переменной а присваиваем сумму 3-х цифр}
if a = i {если а = основному числу} then writeln(i, ' ', a) {то вывод такого числа} else writeln('Таких чисел нет.'); {иначе вывод, что таких чисел нет} end.
2 votes Thanks 1
FreeProgrammer
Замечание: в цикле сейчас вычисляются только квадраты трехзначных чисел. Остальные команды "выпали" из цикла, т.к. отсутствуют операторные скобки begin ... end. То есть сейчас в программе проверяется условие только для последнего числа. Но результат действительно отрицательный: трехзначных чисел, удовлетворяющих условию, нет.
Answers & Comments
Вот только программа выдает, что таких чисел нет )))
program Poisk;
var
i, a, b, c, d: integer;
begin
for i := 100 to 999 do
a := sqr(i); {переменной а присваиваем квадрат числа}
b := a mod 10; {переменной b присваиваем остаток основного числа. Это 1-я цифра}
a := a div 10; {переменной а присваиваем целую часть основного числа}
c := a mod 10; {переменной c присваиваем остаток числа. Это 2-я цифра}
a := a div 10; {переменной а присваиваем целую часть числа}
d := a mod 10; {переменной d присваиваем остаток числа. 3-я цифра}
a := b + c + d; {переменной а присваиваем сумму 3-х цифр}
if a = i {если а = основному числу}
then writeln(i, ' ', a) {то вывод такого числа}
else writeln('Таких чисел нет.'); {иначе вывод, что таких чисел нет}
end.