Universidad de Costa Rica
|
|
|
|
|
Armstrong.pas, que se muestra a
continuación, de acuerdo a las Convenciones de
Programación descritas en
[DiM88a].
PROGRAM Armstrong;
{ Determina cuantos numeros son de Armstrong, desde 1
hasta numero. Un numero es de Armstrong si la suma de
los digitos que lo componen al cubo es igual al
numero. Por ejemplo 153 es un numero de Arms.}
CONST n = 3000;
VAR
numero, suma,
digito, temp : INTEGER;
begin
WriteLn('Numeros encontrados (1 .. 3000)');
WriteLn(' que son de Armstrong:');
WriteLn;
for numero:=1 to n do begin
suma:=0;
temp:=numero;
WHILE temp <> 0 DO BEGIN { suma de digitos }
digito:= temp MOD 10; { al cubo }
suma:= suma+(digito*digito*digito);
temp:= temp DIV 10
END;
IF suma = numero then
WriteLn(numero,' Suma de su digitos al cubo ', suma);
end;{ FOR }
ReadLn;
END. { Armstrong }
|
Armstrong.pas
| [DiM88a] | Di Mare, Adolfo:
Convenciones de Programación para
Pascal,
Reporte Técnico ECCI0188, Proyecto
32686053,
http:// www.di-mare.com /adolfo/p/ convpas.htm,
Escuela de Ciencias de la Computación e
Informática
(ECCI),
Universidad de Costa Rica
(UCR),
1988.
|
PROGRAM Armstrong;
{ RESULTADO
Determina cuantos números son de Armstrong, desde 1 hasta N.
- Un número es de Armstrong si la suma de los dígitos que lo
componen elevados al cubo es igual al número.
- Por ejemplo 153 es un número de Armstrong porque
3 3 3
153 = 1 + 5 + 3 = 1^3 + 5^3 + 3^3 }
CONST
N = 3000;
VAR
numero, suma,
digito, temp : INTEGER;
BEGIN { Armstrong }
Write('Números encontrados (1 .. ');
WriteLn(N:1, ') que son de Armstrong:');
WriteLn;
FOR numero := 1 TO N DO BEGIN
suma := 0;
temp := numero;
WHILE temp <> 0 DO BEGIN { suma de dígitos }
digito := temp MOD 10; { al cubo }
suma := suma + (digito * digito * digito);
temp := temp DIV 10;
END;
IF suma = numero THEN BEGIN
WriteLn(numero,' Suma de sus dígitos al cubo ', suma);
END;
END;
END. { Armstrong }
|
Armstrong.pas
Adolfo Di Mare <adolfo@di-mare.com>.
|
|
|