Skip to main content

Check if the number is palindrome using matlab

Problem: 

Write a function in Matlab to check whether the given number is palindrome or not?

Solution: 

Here we will create a function in MATLAB which will check whether the number is palindrome or not.
What is palindrome?
A palindrome is a number which when reversed will give the original number.
Example: Consider 1221, if it is reversed then the number is again 1221.
Consider 1234, if the number is reversed then the number is 4321 which is not the original number 1234 and hence 1234 is not a palindrome number.

To know more about palindrome numbers click here: Wikipedia: Palindrome

Note that the explanation for the program in below the program section.

Program



function tf = ispalindrome(n)
%this function will check whether the given number is 
%palindrome or not

%Fist we will assume that the given number is palindrome
tf = true;

%Convert the number to string so that we can use the number as
%a vector

n = num2str(n);

%Now we have to find the number of 
%iterations required to check the given number
%If the number is even then length/2
%If the number is odd then (length-1)/2

if rem(length(n),2) == 0
    len = length(n)/2;
else
    len = (length(n)-1)/2;
end

%A for loop to iterate through the number to 
%check for the same numbers

for i = 1:len
    if n(i) ~= n(length(n)+1-i)
        tf = false;
        break;
    end
end

Download a copy of the above program here: ispalindrome.m

Explanation

In this function first we will assume that the given number is true. After the program is executed and if the number is found to be a non palindrome number then the variable tf is changed from true to false.

Now we will assume that the input given by the user in the function is a number and we will convert the number to string to proceed further in the program.

After we have reached here to proceed further we have two cases to check whether the number is palindrome or not

Case1: Length of the Input number is even

If length of the input number is even then we can simply divide the number into two parts and just check whether the first number is equal to last number or not and so on.
For example let us consider a the number 1221 for instance.
As the length of the number is even(4) we can simply break the number into two parts and then check the number is same for both the sides. After we break the number we have two parts: 12 and 21.
First check for number with index 1 == number with index 4
Next check for number with index 2 == number with index 3
This continues for larger number in similar fashion.
Here we can write the above iteration in mathematical form as follows:
number(i) == number(length(number)-i+1)
Where i ranges from 1 to  half of the length of the number.
So for the above example i ranges from 1 to 4/2 = 2.
To get a clear understanding try with different numbers whose lengths are even.

Case2: Length of the Input number is odd

If the length of the input number is odd, here also we will divide the number to two parts but a number is left which is left because it doesn't have a pair to check and thus it can be any number.
To understand this easily consider the number 12321 whose length is odd(5).
Now I will divide the number into three parts 12,3,21, I will omit 3 and thus finally we have two parts 12,21, and the same check goes on as case 1. The condition can be written mathematically as:
 number(i) == number(length(number)-i+1)
Where i ranges from 1 to  half of the (length of the number - 1).
So for the above example i ranges from 1 to 5-1/2 = 2.
To get a clear understanding try with different numbers whose lengths are odd.

As we have got a clear understanding of the lengths to be used we will use an if and else statement to create the iteration range to use in for loop.
finally we will iterate through the number to check whether the numbers are same as their counterparts.

Get the pdf version of this function and its explanation to read it offline: ispalindrome.pdf

The above code was formatted using hilite.me

Run the program and comment below the output you are getting for a given input.

Keywords: Matlab function, palindrome number, if else

Popular posts from this blog

Making a quiz web app with python and flask

Edit : When you are creating a web app with h tml templates, then y ou will have to sa ve the html file in templates folder in the Current Wor ki ng Directory( CWD). If you save the file in the C W D directl y you will get a TemplateNotFound error. Thank you Udhay for pointing it out.   In this post we will create a quiz website using python . I will be using the flask framework . After reading this tutorial you will learn form submission , flask templates , python code in flask templates , shuffling the questions and options with the random module and few others.  Please note that this tutorial is not big as it seems to be. Some of the code has been rewritten to maintain consistency and also font size is somewhat big so that your eyes won't get stressed reading this tutorial. Also the content has not occupied the full width of the page. In this tutorial I am assuming that you are having a very basic understanding of the flask framework . Please refer the documentation

Problem 11 Project Euler Solution with python

Largest product in a grid In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07

Problem 60 Project Euler Solution with python

Prime pair sets The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime. This problem is j u st a brute force problem. If you have come here because you don't know the limit upto which you will h ave to gener ate the prime numbers t hen go ahe ad and t r y with 10,000 . When I first start ed solving the problem I chose 1 million(beca use most of the problem s on project E uler have this limit ), but it took very long for the computer to fin d the solution. After searching on the internet then I found many people choosing 10, 000 so I have changed my in put f rom 1 million to 10000 and the output was f ast. He