MATLAB MATLAB decomposing numbers (armstrong numbers)

  • Thread starter Thread starter pslarsen
  • Start date Start date
  • Tags Tags
    Matlab Numbers
AI Thread Summary
The discussion focuses on solving the problem of identifying Armstrong numbers using MATLAB. An Armstrong number is defined by the property that the sum of its digits raised to the power of the number of digits equals the number itself. For example, 370 is an Armstrong number because 3^3 + 7^3 + 0^3 equals 370. The user has created a function to find Armstrong numbers and is seeking optimization for it. The first 20 Armstrong numbers are provided, including examples like 1, 2, 3, and 153. The user also shares instructions for running the MATLAB program, emphasizing the need to place the relevant files in the same directory.
pslarsen
Messages
23
Reaction score
1
Hello.
I want to solve the problem with armstrong numbers. Is there a smart way to decompose a number in MATLAB?

E.g. 57483920 = [5 7 4 8 3 9 2 0]

I want to find the numbers which has the following property:

Let k be the number of digits in a number, n, and d1,d2,d3,d4... be the digits of n.
Say n=370. Then k=3 and d1=3, d2=7 and d3=0.
Now 3^3+7^3+0^3=370. So 370 is an Armstrong number.
Armstrong iff n=d1^k+d2^k+d3^k+d4^k+..

Another Armstrong number is 153 because 1^3+5^3+3^3 = 153
 
Physics news on Phys.org
Okay, I have written my own function but it can surely be optimized. The first 20 Armstrong numbers are:

1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
54748
92727
93084
548834

Enjoy,
Peter.

PS: To run the programme place both MATLAB-files in the same directory and run faktor2.m
 

Attachments

Back
Top