Напишите программу в паскаль! Естественное число величается числом Армстронга, если сумма
Напишите программку в паскаль! Натуральное число величается числом Армстронга, если сумма цифр числа, возведенных в K -ю степень (где K количество цифр в числе) равна самому числу. К примеру, 153 = 1 3 + 5 3 + 3 3 . Напишите программу, которая обретает все числа Армстронга на отрезке [ a , b ] . Входные данные Входная строчка содержит два естественных числа значения a и b , разделённых пробелами. Гарантируется, что a b . Выходные данные Программа должна вывести в одну строку все числа Армстронга на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программка обязана вывести число -1.
Задать свой вопрос1 ответ
Олеся Лоянич
program Amstrong;
var
a,b: integer;
i,j,k,
ci,
si,mi,
errkod: integer;
sti: string;
flag: Boolean;
begin
Readln(a,b);
flag:=false;
for i:=a to b do
begin
str(i, sti);
si:=0;
for j:=1 to Length(sti) do
begin
val(sti[j],mi,errkod);
ci:=1;
for k:=1 to Length(sti) do
ci:=ci*mi;
si:=si+ci;
end;
if si=i then
begin
write(si, );
flag:=true
end;
end;
if not flag then write(-1);
Readln;
end.
Второй вариант исполнения программы:
var
i,l,k,a,b,c,s,e,g,f,x,h,j:integer;
begin
for i:=100 to 9999 do
begin
l:=i;
while llt;gt;0 do
begin
l:=l div 10;
k:=k+1;
end;
if k=3 then
begin
a:=i mod 10;
b:=i div 100;
c:=i div 10 mod 10;
s:=a*a*a+b*b*b+c*c*c;
if i=s then
write(i, );
end
else
begin
e:=i mod 10;
g:=i div 10 mod 10;
f:=i div 100 mod 10;
x:=i div 1000;
h:=f*f*f*f+g*g*g*g+e*e*e*e+x*x*x*x;
if i=h then
write(i, );
end;
k:=0;
end;
end.
var
a,b: integer;
i,j,k,
ci,
si,mi,
errkod: integer;
sti: string;
flag: Boolean;
begin
Readln(a,b);
flag:=false;
for i:=a to b do
begin
str(i, sti);
si:=0;
for j:=1 to Length(sti) do
begin
val(sti[j],mi,errkod);
ci:=1;
for k:=1 to Length(sti) do
ci:=ci*mi;
si:=si+ci;
end;
if si=i then
begin
write(si, );
flag:=true
end;
end;
if not flag then write(-1);
Readln;
end.
Второй вариант исполнения программы:
var
i,l,k,a,b,c,s,e,g,f,x,h,j:integer;
begin
for i:=100 to 9999 do
begin
l:=i;
while llt;gt;0 do
begin
l:=l div 10;
k:=k+1;
end;
if k=3 then
begin
a:=i mod 10;
b:=i div 100;
c:=i div 10 mod 10;
s:=a*a*a+b*b*b+c*c*c;
if i=s then
write(i, );
end
else
begin
e:=i mod 10;
g:=i div 10 mod 10;
f:=i div 100 mod 10;
x:=i div 1000;
h:=f*f*f*f+g*g*g*g+e*e*e*e+x*x*x*x;
if i=h then
write(i, );
end;
k:=0;
end;
end.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Облако тегов