Skip to main content

Problem 16: projecteuler.net: Matlab: Power digit sum

Problem

215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.
What is the sum of the digits of the number 21000? Solve this problem using Matlab?

Solution

This problem is very simple. I suggest you first go through the program and if you cannot understand any part then please go through the explanation section and if you still cannot understand then once go through the links below:

Program

tic;
y = sym(2^1000);

y = char(y);

sum = 0;

for i = 1:length(y)
    sum = sum+str2num(y(i));
end

disp(sum);
toc;

You can download the above program from here: problem_16.m

Explanation

First I have converted the value of 2100 as a sym using the symbolic toolbox, because if I log the value, then the value of the output is rounded off and an approximate value is given and not a exact value. Next I have converted the value of y to a character using char function, finally I have looped through each letter of y and then converted that letter to a number added it to the sum. Finally after the looping is over then I have displayed the value of the sum. That's all the program is over and you get the output. I think this program is very simple and so I have written a small explanation. If you are not satisfied with the explanation of the program then please let me know by contacting me from here: contact me

Note that I have used tic toe to count the amount of time taken for the execution of the program.

Comment the answer you get from running this program in the comment box below. Also please contact me if you have any doubt or didn't understand anything or any part contact me from here: contact me

The above program has been high lighted using hilite.me

The above problem has been taken from projecteuler.net from here: problem 16

References

char - Convert symbolic objects to strings 
Matlab - Symbolic Math
Symbolic Math toolbox Documentation

Keywords:Projecteuler.net, problem 16, power digit sum, for loop in matlab