Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
es_perfecto.adb
with Ada.Integer_text_io; use Ada.Integer_text_io; procedure Numeros_perfectos is --Entrada: serie de enteros positivos terminada en -1 --Salida: serie de numeros enteros positivos --post: los numeros son los de la entrada que son perfectos (en ese mismo orden) function es_perfecto(Num:in Positive) return Boolean is --post: resultado= true <--> (sii) Num es perfecto suma: integer := 0; resultado : Boolean :=true; begin for i in reverse 1..Num-1 loop if Num rem i = 0 then --i es divisor de Num suma := suma + i; end if; end loop; if suma /= Num then resultado := false; end if; return resultado; --return suma = Num; end es_perfecto; N:Integer; seguir: Boolean := true; begin while seguir=true loop get(N); if N = -1 then seguir := false; elsif es_perfecto(Num=>N) = true then Put(N); end if; end loop; end Numeros_perfectos; -- 1 2 3 4 5 6 7 28 9 496 10 8128 -1 -- * ** *** **** --
run
|
edit
|
history
|
help
0
function calling using pointers
Stack (Using Tasking)
Iterator Interface
plop
Ada Dimentional System
Ada.adb
Controlled types (temporary anonymous objects)
susuma_dos_enteros.adb
1d array as 4d with easy reshaping
Memory Alignment