  # Armstrong Numbers - a code with Matlab

An Armstrong number (sometimes called also narcissistic numbers) of three digits is an integer such that the sum of the cubes of its digits equals the number itself. For example, 407 is an Armstrong number since

43 + 03 + 73 = 407

 Let’s write a program in Matlab to find all the AN numbers in the range of 100 and 999. We’re going to use two  approaches. In the first one, we use a counter to go from 100 to 999. We examine every digit in that number by getting its equivalent string (using num2str).

Then, we follow the definition of Armstrong numbers and compare the results to decide whether we accept the numbers or not.

clear, clc

% Let i take numbers 100 to 999
for i = 100 : 999

% We examine every digit in i
is = num2str(i);

% i1 is the left-most digit in i
i1 = str2num(is(1));

% i2 is the middle digit
i2 = str2num(is(2));

% i3 is the right-most digit in i
i3 = str2num(is(3));

% We calculate the probable AN
an = i1^3 + i2^3 + i3^3;

% We compare to the number itself
if i == an

% We display the pair of equal numbers
disp([i an])

end
end

The results are:

153   153
370   370
371   371
407   407

For the second approach, we are going to take three digits and iterate them to get all the possible combinations to achieve integers from 100 to 999. (those first digits are obviously hundreds, tens and units). Then, we perform the convenient computations to find the number itself and the possible AN. If they match, we display the results.

% We use a as hundreds
for a = 1 : 9

% We use b as tens
for b = 0 : 9

% We use c as units
for c = 0 : 9

% n is the resulting number
n = a*100 + b*10 + c;

% an is the Armstrong number
an = a^3 + b^3 + c^3;

% We compare the number with its AN
if n == an

% and display if they're the same
disp([n an])

end
end
end
end

The results are:

153   153
370   370
371   371
407   407

From 'Armstrong Numbers ' to home

From 'Armstrong Numbers ' to 'Flow Control'  