Kotlin Program to Check Armstrong Number between Two Integers

In this article, we will understand how to display the Armstrong numbers between the given two numbers in Kotlin. An Armstrong number is a number that is equal to the sum of the cubes of its own digits. For example, 153 is

153 = (1)<sup>3</sup> + (5)<sup>3</sup> + (3)<sup>3</sup>

Below is a demonstration of the same

Suppose our input is

1 & 500

The desired output would be

The Armstrong numbers between 1 and 500 are 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407

Algorithm

  • Step 1 ? Start

  • Step 2 ? Declare four integers: inputLow, inputHigh, originalNumber and myResult

  • Step 3 ? Define inputLow and inputHigh values

  • Step 4 ? Read the values

  • Step 5 ? Run a for loop to generate Armstrong numbers using %, / and * operator

  • Step 6 ? Divide by 10 and get remainder for ?originalNumber?.

  • Step 7 ? Multiply ?remainder? thrice, and add to ?myResult?, and make that the current ?myResult?.

  • Step 8 ? Divide ?originalNumber? by 10, and make that the current ?originalNumber?.

  • Step 9 ? Display the result

  • Step 10 ? Stop

Example 1

In this example, we will check Armstrong Number between two integers in Kotlin. First, declare and set two variables. This is the range within which we will find the Armstrong Numbers ?

val inputLow = 1
val inputhigh = 500

Now, use the while loop inside for loop to find the Armstrong numbers in a range

<div class="code-mirror  language-kotlin" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">for</span> <span class="token punctuation">(</span>number <span class="token keyword">in</span> inputLow <span class="token operator">+</span> <span class="token number">1</span><span class="token operator">..</span>inputhigh <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token keyword">var</span> tempDigits <span class="token operator">=</span> <span class="token number">0</span>
   <span class="token keyword">var</span> myResult <span class="token operator">=</span> <span class="token number">0</span>
   <span class="token keyword">var</span> originalNumber <span class="token operator">=</span> number

   <span class="token keyword">while</span> <span class="token punctuation">(</span>originalNumber <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      originalNumber <span class="token operator">/=</span> <span class="token number">10</span>
      <span class="token operator">++</span>tempDigits
<span class="token punctuation">}</span>

originalNumber <span class="token operator">=</span> number

<span class="token keyword">while</span> <span class="token punctuation">(</span>originalNumber <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token keyword">val</span> remainder <span class="token operator">=</span> originalNumber <span class="token operator">%</span> <span class="token number">10</span>
   myResult <span class="token operator">+=</span> Math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span>remainder<span class="token punctuation">.</span><span class="token function">toDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> tempDigits<span class="token punctuation">.</span><span class="token function">toDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
   originalNumber <span class="token operator">/=</span> <span class="token number">10</span>
<span class="token punctuation">}</span>
</div>

Let us now see the complete example to find the Armstrong Numbers

<div class="execute"></div><div class="code-mirror  language-kotlin" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">fun</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token keyword">val</span> inputLow <span class="token operator">=</span> <span class="token number">1</span>
   <span class="token keyword">val</span> inputhigh <span class="token operator">=</span> <span class="token number">500</span>
   <span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"The lower and higher limit are defined as <span class="token interpolation variable">$inputLow</span> and <span class="token interpolation variable">$inputhigh</span> "</span><span class="token punctuation">)</span>
   <span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"The Armstrong numbers are:"</span><span class="token punctuation">)</span>

   <span class="token keyword">for</span> <span class="token punctuation">(</span>number <span class="token keyword">in</span> inputLow <span class="token operator">+</span> <span class="token number">1</span><span class="token operator">..</span>inputhigh <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">var</span> tempDigits <span class="token operator">=</span> <span class="token number">0</span>
      <span class="token keyword">var</span> myResult <span class="token operator">=</span> <span class="token number">0</span>
      <span class="token keyword">var</span> originalNumber <span class="token operator">=</span> number
      
      <span class="token keyword">while</span> <span class="token punctuation">(</span>originalNumber <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         originalNumber <span class="token operator">/=</span> <span class="token number">10</span>
         <span class="token operator">++</span>tempDigits
      <span class="token punctuation">}</span>
      originalNumber <span class="token operator">=</span> number
      
      <span class="token keyword">while</span> <span class="token punctuation">(</span>originalNumber <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         <span class="token keyword">val</span> remainder <span class="token operator">=</span> originalNumber <span class="token operator">%</span> <span class="token number">10</span>
         myResult <span class="token operator">+=</span> Math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span>remainder<span class="token punctuation">.</span><span class="token function">toDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> tempDigits<span class="token punctuation">.</span><span class="token function">toDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
         originalNumber <span class="token operator">/=</span> <span class="token number">10</span>
      <span class="token punctuation">}</span>

      <span class="token keyword">if</span> <span class="token punctuation">(</span>myResult <span class="token operator">==</span> number<span class="token punctuation">)</span>
         <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"<span class="token interpolation variable">$number</span> "</span><span class="token punctuation">)</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

The lower and higher limit are defined as 1 and 500
The Armstrong numbers are:
2 3 4 5 6 7 8 9 153 370 371 407

Example 2

In this example, we will get the Armstrong Numbers between two integers

<div class="execute"></div><div class="code-mirror  language-kotlin" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">fun</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token keyword">val</span> inputLow <span class="token operator">=</span> <span class="token number">1</span>
   <span class="token keyword">val</span> inputhigh <span class="token operator">=</span> <span class="token number">500</span>
   <span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"The lower and higher limit are defined as <span class="token interpolation variable">$inputLow</span> and <span class="token interpolation variable">$inputhigh</span> "</span><span class="token punctuation">)</span>
   <span class="token function">printArmstrongNumbers</span><span class="token punctuation">(</span>inputLow<span class="token punctuation">,</span> inputhigh<span class="token punctuation">)</span>
<span class="token punctuation">}</span>

<span class="token keyword">fun</span> <span class="token function">printArmstrongNumbers</span><span class="token punctuation">(</span>inputLow<span class="token operator">:</span> Int<span class="token punctuation">,</span> inputhigh<span class="token operator">:</span> Int<span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"The Armstrong numbers are:"</span><span class="token punctuation">)</span>
   <span class="token keyword">for</span> <span class="token punctuation">(</span>number <span class="token keyword">in</span> inputLow <span class="token operator">+</span> <span class="token number">1</span><span class="token operator">..</span>inputhigh <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">var</span> tempDigits <span class="token operator">=</span> <span class="token number">0</span>
      <span class="token keyword">var</span> myResult <span class="token operator">=</span> <span class="token number">0</span>
      <span class="token keyword">var</span> originalNumber <span class="token operator">=</span> number
      <span class="token keyword">while</span> <span class="token punctuation">(</span>originalNumber <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         originalNumber <span class="token operator">/=</span> <span class="token number">10</span>
         <span class="token operator">++</span>tempDigits
      <span class="token punctuation">}</span>
      
      originalNumber <span class="token operator">=</span> number
      <span class="token keyword">while</span> <span class="token punctuation">(</span>originalNumber <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         <span class="token keyword">val</span> remainder <span class="token operator">=</span> originalNumber <span class="token operator">%</span> <span class="token number">10</span>
         myResult <span class="token operator">+=</span> Math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span>remainder<span class="token punctuation">.</span><span class="token function">toDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> tempDigits<span class="token punctuation">.</span><span class="token function">toDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
         originalNumber <span class="token operator">/=</span> <span class="token number">10</span>
      <span class="token punctuation">}</span>

      <span class="token keyword">if</span> <span class="token punctuation">(</span>myResult <span class="token operator">==</span> number<span class="token punctuation">)</span>
         <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"<span class="token interpolation variable">$number</span> "</span><span class="token punctuation">)</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

The lower and higher limit are defined as 1 and 500
The Armstrong numbers are:
2 3 4 5 6 7 8 9 153 370 371 407
Updated on: 2022-10-13T12:49:28+05:30

908 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements