In this program, you'll learn to check whether a given number is armstrong number or not. You'll learn to do this by using a while loop in Kotlin.

A positive integer is called an Armstrong number of order `n` if

abcd... = a^{n}+ b^{n}+ c^{n}+ d^{n}+ ...

In case of an Armstrong number of 3 digits, the sum of cubes of each digits is equal to the number itself. For example:

153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 is an Armstrong number.

```
fun main(args: Array<String>) {
val number = 371
var originalNumber: Int
var remainder: Int
var result = 0
originalNumber = number
while (originalNumber != 0) {
remainder = originalNumber % 10
result += Math.pow(remainder.toDouble(), 3.0).toInt()
originalNumber /= 10
}
if (result == number)
println("$number is an Armstrong number.")
else
println("$number is not an Armstrong number.")
}
```

When you run the program, the output will be:

371 is an Armstrong number.

- First, given number (
`number`)'s value is stored in another integer variable,`originalNumber`. This is because, we need to compare the values of final number and original number at the end. - Then, a while loop is used to loop through
`originalNumber`until it is equal to 0.- On each iteration, the last digit of
`num`is stored in`remainder`. - Then,
`remainder`is powered by 3 (number of digits) using`Math.pow()`

function and added to`result`.

Here,`remainder`is converted to`Double`

because`pow`

only accepts`Double`

parameters, and its value is again converted back to`Int`

- Then, the last digit is removed from
`originalNumber`after division by 10.

- On each iteration, the last digit of
- Finally,
`result`and`number`are compared. If equal, it is an armstrong number. If not, it isn't.

Here's the equivalent Java code: Java Program to Check Armstrong Number

`fun main(args: Array`) {
val number = 1634
var originalNumber: Int
var remainder: Int
var result = 0
var n = 0
originalNumber = number
while (originalNumber != 0) {
originalNumber /= 10
++n
}
originalNumber = number
while (originalNumber != 0) {
remainder = originalNumber % 10
result += Math.pow(remainder.toDouble(), n.toDouble()).toInt()
originalNumber /= 10
}
if (result == number)
println("$number is an Armstrong number.")
else
println("$number is not an Armstrong number.")
}

In this program, we've used two while loops. The first while loop is used to count the number of digits in the `number`.

Then, `originalNumber` is restored to the given `number`.

The second while loop then checks whether the number is armstrong or not.

Visit this page to learn, how you can display all armstrong numbers between two intervals.

It takes a lot of effort and cost to maintain Programiz. We would be grateful if you support us by either:

**Disabling AdBlock on Programiz. We do not use intrusive ads.**

or

Donate on Paypal
By using Programiz, you agree to use cookies as stated in our Privacy policy Continue