Comprobar el número de Armstrong en PL/SQL

Dado un número x, determine si el número dado es el número de Armstrong o no. Un entero positivo de n dígitos se denomina número de Armstrong de orden n (el orden es el número de dígitos) si.

abcd... = pow(a, n) + pow(b, n) + pow(c, n) + pow(d, n) + .... 

Ejemplo:

Input : 153
Output : Yes
153 is an Armstrong number.
1*1*1 + 5*5*5 + 3*3*3 = 153

Input : 120
Output : No
120 is not a Armstrong number.
1*1*1 + 2*2*2 + 0*0*0 = 9

Input : 1253
Output : No
1253 is not a Armstrong Number
1*1*1*1 + 2*2*2*2 + 5*5*5*5 + 3*3*3*3 = 723

Input : 1634
Output : Yes
1*1*1*1 + 6*6*6*6 + 3*3*3*3 + 4*4*4*4 = 1634
declare
-- declare variable n, s,r, len
-- and m of datatype number
    n number:=1634;
    s number:=0;
    r number;
    len number;
    m number;
  
begin
    m := n;
  
    len := length(to_char(n));
      
    -- while loop till n>0
    while n>0
    loop
        r := mod(n , 10);
        s := s + power(r , len);
        n := trunc(n / 10);
    end loop;
      
    if m = s
    then
        dbms_output.put_line('yes');
    else
        dbms_output.put_line('no');
    end if;
      
end;
  
-- End program

producción:

Yes

Publicación traducida automáticamente

Artículo escrito por vt_m y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *