# Check Armstrong Number in PL/SQL

• Last Updated : 04 Jul, 2018

Given a number x, determine whether the given number is Armstrong number or not. A positive integer of n digits is called an Armstrong number of order n (order is number of digits) if.

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

Example:

```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`

output:

`Yes`
My Personal Notes arrow_drop_up