Square Root Algorithm

Posted: March 17, 2016 in Uncategorized

There are N number of ways to compute square root of a number

we can use the existing library (math) in python to compute the square root

However, there is a constrain in number of decimal digits . Hence, we need an algorithm which can compute a square root and provide n decimal digits .

The following algorithm uses Digit by digit calculation from this wikipedia link

Square Root Computation Algorithms

I have created a python script which will compute square root of 2 with 100 decimal digits .

And i verified the digits from this link

First 100 Digits for SQRT of 2 – Verification

The algorithm is not optimized. However, it gives me the result quickly for first 100 digits

For multiple irrational number , populate the irr list (by default contains 2)

To control number of digits after decimal change decimal variable (by default set to 100)

<br data-mce-bogus="1">
import time
import math

starttime = time.time()

global flag, start, end, decimal
flag = True
start = 0
end = 1
decimal = 100

def main():

answer = 0
irr = [2]

# for each irrational number
for num in irr:

# Step - 1 : Converting number to string and appending 200 zeros
str_num = str(num)
for i in range(0, 210):
str_num = str_num + "0"

# Step - 2: Setting Flag : if lenght of the number is odd we need to take one digit or else two digits
if len(str_num) % 2 != 0:
flag = True
flag = False

start = 0
end = 0
ap_new_dig = 0

# Step - 3: Logic to take one or 2 digits
if flag:
start = 0
end = 1

start = 0
end = 2

temp_num = str_num[start:end]
temp_int_num = int(temp_num)

# Step - 4 : Calculate the initial quotiend and remainder

quo = int(math.sqrt(temp_int_num))
rem = temp_int_num - int(quo ** 2)

# Step - 5 : Here is the main logic to iterate the steps
counter = 0
while counter < decimal - 1 :

# Step - 6 : Bring down the digits
if flag:
start = start + 1
end = start + 2
flag = False
start = start + 2
end = start + 2
new_dig = str_num[start:end]

# Step -7 : Add the digits with previous remainder
ap_new_dig = str(rem) + new_dig

# Step - 8 : Compute a number less than max ap_new_digit
double_num = quo * 2
max_val = 0
t = 0
for i in range(1, 10):
if int( str(double_num) + str(i) ) * i <= int(ap_new_dig):
t = int( str(double_num) + str(i) ) * i
max_val = i

# Step - 9 : Find new quotient and remainder
quo = int ( str(quo) + str(max_val) )
rem = int(ap_new_dig) - t

counter = counter + 1

# Final Quotient will be the answer
print "Square Root of N is" , quo


print "Time taken ", time.time() - starttime


Square Root of N is 1414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641572
Time taken  0.0269999504089



I believe Bhagavad Gita is one of the best text where we can enjoy the essence of Story, Situation, Interpretation, Divinity and knowledge for life.

When we re-iterate the verses in our mind, every time a new interpretation for the verse pops up. The same happened today and hence i am writing this.

I am not writing something new. I heard these from different sources and all i am doing it to wrap it into a single text. Here you go.

Chapter -1 , First sloka –


The verse explains about the conversation between Dhritarashtra and Sanjaya where Dhritarashtra is asking about the current situation prevailing in the battle field.

  1. The first word describing about the Battle field – kurukshetra hints us the result. Dharma Kshetre – The land of righteousness. Author picked the right word in the situation, which clearly insights the victory of Pandavas over Kauravas. Author could have used any adjective about bravery , beauty or situation about the battle field , however, Righteousness was the right pick.
  2. Why does the author picks Dhritarashtra to be the first person to speak in bhagavad gita ? May be, those who are weak in mind and having evil thoughts will have very less things to be spoken. And so, the author picked him to be the first.
  3.  Evenhough Dhritarashtra is aware about the present scenario, his weak minded intuition triggers him to ask about the events happening in Kurukshetra. When two powerful teams are in battle, there will always be a win and lose. His low confidence about his team’s status triggers him to ask , “what they are doing in the battle field” – whole intention behind the statement was to know – “who is winning the war”.
  4.  He could have mentioned the team names to be Kauravas and Pandavas . But, he utters “My sons and Pandu’s sons ” which clearly establishes the difference he had in his mind for pandu and his team. Eventhough Pandu is his own brother
  5. And the whole verse not only explains about the battle field of Kurukshetra, it signifies about our own mind , where there is always a fight between good and an evil. We need to be aware that we may have less number of good qualities in our mind, we should never allow them to be taken over by evil .


     After all life is nothing but the war between a good and an evil.







A Tour On Python List

Posted: May 28, 2015 in Programming
Tags: , , ,

 For those who have used Arrays in C and C++, list in Python is going to be a lucky charm . As Head First Python states, List is nothing but an array with steroids. Python list makes the life very easier as its dynamic in nature and the in-build functions are available to perform all the actions on it.

First lets list down the basic stuffs that we always do on arrays .

1. Declaring
2. Creating
3. Initializing with predefined input
4. Adding More input to it
5. Searching
6. Indexing
7. Removing
8. Erasing
9. In Built Functions

In this tutorial, am going to use 2 lists. One named numbers and other named alphabets. Lets go and see one by one .

1. Declaring a list

As we know, we need not declare a variable with appropriate data type in python . both a = 5 and a = ‘5’ are valid without specifying the corresponding data type. And more importantly, its applicable to lists as well.

2. Creating a list

When i say creating , it has 2 modes. Creating an empty one to add items later. Or creating a predefined set of elements in the list. To create an empty list, all we need to do is to write an open and closed square brackets.

numbers = []


3. Initializing with Predefined Input:

Sometimes, we will be really sure that we are going to work with only some specific inputs. In those situations we can create a list with pre defined inputs in it. That can be done by enclosing the inputs inside the square bracket

numbers = [1,2,3,4]


4. Adding more input to a List:

Adding input to the list can be categorized as following

4.1 – Adding elements one by one to a list
4.2 – Adding elements in a block
4.3 – Multiplying the list
4.4 – Adding list inside a list

4.1 – Adding elements one by one to the list :

Python has predefined function named “insert” , which can be used to add elements to the list. However, the insert takes two arguments. first one is the position and second one is the value. The list with numbers 1,2,3,4 can also be created as below

numbers = []


4.2 – Adding elements in block

If suppose we have 2 lists. first one containing numbers 1 to 3 and other one containing numbers 4 to 6. And we need to merge two list. ie. adding elements in block, then we can do it as below:

num1 = [1,2,3]
num2 = [4,5,6]
num1 + num2

or simply

[1,2,3] + [4,5,6]


4.3 – Multiplying the list

Python creates a easy way of inserting repeated items. For example, if we need a list which has 3 numbers 1,2,3 ten times. we need not write a for loop . Just a simple multiplication operator on list will do it as below

numbers = [1,2,3]
numbers * 10


4.4. Nesting Lists

Yes, we can have list inside a list. And there is a specific way for indexing the list. In the list below , 4th item is a list which contains 3 items in turn.

numAlpha = [1,2,3 [ “a”, “b”, “c” ]]


5. Searching an element in the list

If we need to check an element exists in the list , we can use “in” keyword with list which will return a boolean value (True indicating the element exists and false indicating the element doesnt exist in the list)

numbers = [1,2,3,4,5,6]
4 in numbers
7 in numbers


6. Indexing list

We can get the element based on the index of that element in the list. Since, all the elements are inserted into the list with the index element, we can derive any element if we know the index. Index starts with 0 and moves on as we insert the elements.

List_name[start : end]

This is the common notation . start denotes the starting index that we need to start with, to start from beginning give 0 or leave it empty. End denotes the position to which list should print

numbers = [1,2,3,4,5,6]
numbers[1:4] - show elements from index 1 till 3
numbers[:2] - show elements from beginning till 1st index
numbers[2:] - show elements from index 2 to end of the list
numbers[:] - print all elements
numbers[-2] - tricky one .. show 2nd last element in the list


7. Removing elements from a list :

We can remove an element from the list if we know the index or element value. remove function can be used if we know the list value and del function can be used to remove using index.

numbers = [1,2,3,4,5,6]
del numbers[-4]


8. Erasing the list :

If we need to erase all the elements in the list , we can use clear function . List_name.clear() will remove all the elements from list.

numbers = [1,2,3,4,5,6]


9. Inbuilt Functions :

There are lot of inbuilt functions available in python list. One that we saw is len(list_name) which gives the length . Similarly we have

len – finds the total number of elements in the list
count – finds the number of occurrence for an element
sort – sorts the list
reverse – reverse the list
index – returns the index of first matching element


The firefox update can be downloaded as *.tar.gz from the official website.

We can directly move to the downloaded directory and untar it . It will give us a folder named firefox .Inside that , we will be having an executable named firefox. Once you trigger the executable , the new version of firefox will launch.

But, we have a problem here. The existing version still exists in home folder as .firefox . And if you take an attempt by clicking on the firefox icon, it will launch the older version of your firefox.

We need to find out the directory where the firefox is installed. In my case, it was in /usr/lib . Sometimes, it may get installed in /opt or /etc. we need to replace the /usr/lib/firefox directory with our downloaded latest firefox.

cd /usr/lib
sudo cp -r /home/user/download/firefox .

Enter the password to proceed with the action.

After the copy, when you click on the firefox icon , new version of the firefox will open.

One of the best rubik Timer with lot of inbuilt options. I took an attempt of using Prisma Puzzle Timer in Ubuntu 14.04.

We can download the jar from this website
Prisma Puzzle Timer

After downloading we can run the timer from terminal using the following command

Move to the downloaded jar file location

cd /home/user/Downloads

and run the jar file by

java -jar PrismaPuzzleTimer0.6.jar

which will invoke the timer .

But everytime , we need to type this command in the terminal to invoke it .

Instead we can create a laucher file which will invoke this timer. For that we need a simple software .


We can download the software using the command

sudo apt-get install alacarte

Once downloaded invoke alacarte from the terminal by typing its name


and click on new item button to create a new launcher.

In the command type java -jar PathToTheJarFile

in my case its java -jar /home/user/Software/PrismaPuzzleTimer.jar

Save and close . With the given Name (in my case its “RubikTimer”) it will be added to the main menu.

You can search for the work RubikTimer in the menu search tab and launch the software by clicking on the file .

Please refer to the images below .

Installing Alacarte

Setting Up The Launcher Icon

Searching for the Launcer

Prisma Puzzle Timer

I had Ubuntu 12.04 and Windows 7 running in my system and Ubuntu 12.04 got Crashed .I tried debugging it but couldnt succeed.

I decided to do a fresh install of latest version of Ubuntu and that was Ubuntu 14.04. I created a live USB and installed it in my system .

Installation was quick and easy. But , since i created a new Ubuntu install rather than overridding the existing one , Only 9 GB of space was left with me in the system Where ubuntu 14.04 got installed.

I had access to Ubuntu 12.04 Files as a separate drive, which i doesnt needed. I was looking for some application like Disk Management in windows which would help me to resize my partitions and i edned up with Gparted.

It looked pretty complex stuff for me to delete the partition and free up the space . Luckily , dual boot helped me to do it via Disk Management utitility in windows. I had free space ready with me .

Follow the steps below

1. Open Gparted and authorize it.
2. Right click on the partition which you want to increase
3. Select Resize/Move
4. Enter correct value in New size (It should be less then total unallocated space)
5. Click on start button to complete the action.

I was trying to resize my ubuntu 14.04 partion space using Gparted , where i deleted a partition which had my previous ubuntu install.

Unfortunately, the grub was loading from that partition and after my restart the computer went to the promt with grub rescue menu.

If you face the simillar situation , you can recover your OS grub loader as below.

This link was really helpful for me to boot my ubuntu installation .

Follow the steps given by Amr Amyan.

For me the commands were

set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal

where msmod6 is the partition where ubuntu resides. That can be found by ls command .
Try ls(hd0,msdosX) and hit enter. you should be a valid partition . (ext2 partition)

But its not the end. You have just booted up the OS. When you restart you will be back to your grub rescue menu.

So here we have 2 options.

1. Using Live CD or Live USB
2. Using Existing Ubuntu

Since my Ubuntu 14.04 got booted up , i installed boot-repair from terminal by following these commands

sudo add-apt-repository ppa:kranich/cubuntu
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Once its done , open boot repair and select “Recommended Repair” Menu . System will recover Grub and give you a link as well.
NOte down the link and restart your computer.

Bingo !!!!

Even after boot repair you are not getting the boot menu, paste the link to the corresponding email id. Ubuntu support team will help you out !!!.