Saturday, February 4, 2017

Just enough python programming for interview

# square root of a number using
# babylonian algorithm
def sqrroot(num):
guess = float(num/2)
accuracy = 0.01
while abs(num - (guess ** 2)) > accuracy:
guess = (guess + (num/guess))/2
return guess
sqrroot(12345)
111.10805770520838
# using Math package
import math
math.sqrt(25)
5
Factorial of a number (using while loop)
# factorial number
def fact(num):
i = 1
fact = 1
while i <= num:
fact = fact * i
i += 1
print(fact)
fact(5)
120
Sum every 3rd number
# sum every 3rd number
def sum3rd(num):
i = 1
sum = 0
while i <= num:
sum = sum + i
i += 3
return sum
sum3rd(1001)
167167
Adding consecutive numbers
# sum of consecutive numbers
# using formula N(N+1)/2
n = 100
print((n * (n +1))/2)
5050.0
# sum of consecutive squares
# using formula N(N+1)*(2n +1) / 6
n = 5
print((n * (n +1) * (2 * n + 1))/6)
55.0
Checking if a number is prime
# finding if the number is prime
def isPrime(n):
if n ==2:
return(n)
divider = 2
while divider < n:
if n%divider == 0:
return None
divider += 1
return(n)
Palindrome check
# palindrome
def isPalindrome(st):
if len(st) == 1:
return("single character")
for i in range(0,int(len(st)/2)):
if st[i] != st[-(i+1)]:
return("not a palindrome")
return("palindrome")
isPalindrome("maam")
palindrome
# palindrome in a line
test = "maam"
print(test == "".join(reversed(test)))
True
List functions
lst = [1,45,67,23,11,4,6]
max(lst)
67
min(lst)
1
# sorting list reversed
sorted(lst,reverse=True)
[67, 45, 23, 11, 6, 4, 1]
lst
[1,45,67,23,11,4,6]
lst.sort(reverse=True)
lst
[67, 45, 23, 11, 6, 4, 1]
sum(lst)
157
view raw List functions hosted with ❤ by GitHub
Average of list
# average
def getAverage(lst):
sm = 0
cnt = 0
for i in lst:
sm = sm + i
cnt += 1
return (float(sm/cnt))
getAverage(lst)
22.428571428571427
#one line solution
sum(lst)/len(lst)
22.428571428571427
view raw Average of list hosted with ❤ by GitHub
Perfect number
# perfect number
# sum of all the divisibles is equal to the number 1+2+3 = 6
def perfectNum(n):
i = 1
lst = [0]
while i < n:
if n%i == 0:
lst.append(i)
i += 1
if sum(lst) == n:
print(n," is a perfect number")
Output:
for i in range(1,1000):
perfectNum(i)
6 is a perfect number
28 is a perfect number
496 is a perfect number
perfectNum(28)
28 is a perfect number
view raw Perfect number hosted with ❤ by GitHub
LCM
# LCM
def lcm(x,y):
greater = max(x,y)
while(True):
if (greater%x == 0) and (greater%y ==0):
return(greater)
else:
greater +=1
Output:
lcm(10,5)
10
view raw LCM hosted with ❤ by GitHub
Recursive Algorithm - Fibonacci series
# recursive
# fibonacci series
# 0,1,1,2,3,5,8...
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1)+ fib(n-2)
#Output:
fib(10)
55
Recursive Algorithm - Exponent
# exponent using recursive
def exp(x,y):
if y == 1:
return x
else:
return x * exp(x,y-1)
#output:
exp(5,3)
125
Recursive algorithm - GCD
# recursive Gcd
def recGcd(x,y):
if y ==0:
return x
else:
return recGcd(y, x%y)
Output:
recGcd(10,15)
5