Professional Documents
Culture Documents
[ASSIGNMENT]
PYTHON PROGRAMS
po = 1
while n/po > 9:
po = po * 10
if msd != 3:
# For 578, total will be 4*count(10^2 - 1) + 4 + ccount(78)
return count(msd) * count(po-1) + count(msd) + count(n%po)
else:
# For 35 total will be equal to count(29)
return count(msd * po - 1)
# Driver Program
n = 578
print count(n)
13.Magic Square
def generateSquare(n):
# 2-D array with all
# slots set to 0
magicSquare = [[0 for x in range(n)]
for y in range(n)]
# initialize position of 1
i = n / 2
j = n - 1
# Fill the magic square
# by placing values
num = 1
while num <= (n * n):
if i == -1 and j == n: # 3rd condition
j = n - 2
i = 0
else:
# next number goes out of
# right side of square
if j == n:
j = 0
# next number goes
# out of upper side
if i < 0:
i = n - 1
if magicSquare[int(i)][int(j)]: # 2nd condition
j = j - 2
i = i + 1
continue
else:
magicSquare[int(i)][int(j)] = num
num = num + 1
j = j + 1
i = i - 1 # 1st condition
# Printing magic square
print("Magic Squre for n =", n)
print("Sum of each row or column",
n * (n * n + 1) / 2, "\n")
for i in range(0, n):
for j in range(0, n):
print('%2d ' % (magicSquare[i][j]),
end='')
# To display output
# in matrix form
if j == n - 1:
print()
14.Sieve of Eratosthenes
def SieveOfEratosthenes(n):
# Create a boolean array
# "prime[0..n]" and initialize
# all entries it as true.
# A value in prime[i] will
# finally be false if i is
# Not a prime, else true.
prime = [True for i in range(n+1)]
p = 2
while (p * p <= n):
# If prime[p] is not
# changed, then it is a prime
if (prime[p] == True):
# Update all multiples of p
for i in range(p * p, n+1, p):
prime[i] = False
p += 1
# Print all prime numbers
for p in range(2, n+1):
if prime[p]:
print p,
if (digit == '1'):
state = '1'
elif state == '1':
if (digit == '0'):
state = '2'
else:
state = '0'
elif state == '2':
if (digit == '0'):
state = '1'
if (state == '0'):
return True
return False
if __name__=="__main__":
size = 5
c = [ '1', '0', '1', '0', '1']
if (isMultiple3(c, size)):
print("YES")
else:
print("NO")
21.Check divisibility by 7
def isDivisibleBy7(num) :
# If number is negative, make it positive
if num < 0 :
return isDivisibleBy7( -num )
# Base cases
if( num == 0 or num == 7 ) :
return True
if( num < 10 ) :
return False
# Recur for ( num / 10 - 2 * num % 10 )
return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) )
# Driver program
num = 616
if(isDivisibleBy7(num)) :
print "Divisible"
else :
print "Not Divisible"
import collections
class Solution(object):
def largestMultipleOfThree(self, digits):
"""
:type digits: List[int]
:rtype: str
"""
lookup = {0: [],
1: [(1,), (4,), (7,), (2, 2), (5, 2), (5, 5), (8, 2), (8, 5), (8, 8)],
2: [(2,), (5,), (8,), (1, 1), (4, 1), (4, 4), (7, 1), (7, 4), (7, 7)]}
count = collections.Counter(digits)
for deletes in lookup[sum(digits)%3]:
delete_count = collections.Counter(deletes)
if all(count[k] >= v for k, v in delete_count.iteritems()):
for k, v in delete_count.iteritems():
count[k] -= v
break
result = "".join(str(d)*count[d] for d in reversed(xrange(10)))
return "0" if result and result[0] == '0' else result
# Time: O(n)
# Space: O(1)
class Solution2(object):
def largestMultipleOfThree(self, digits):
"""
:type digits: List[int]
:rtype: str
"""
def candidates_gen(r):
if r == 0:
return
for i in xrange(10):
yield [i]
for i in xrange(10):
for j in xrange(i+1):
yield [i, j]
return rank
st = "string"
print (findRank(st))
return arr
arr = [1, 2, 3, 4, 5, 6, 7, 8]
n = len(arr)
print(randomize(arr, n))
28.Pascal’s Triangle
n=int(input("Enter number of rows: "))
a=[]
for i in range(n):
a.append([])
a[i].append(1)
for j in range(1,i):
a[i].append(a[i-1][j-1]+a[i-1][j])
if(n!=0):
a[i].append(1)
for i in range(n):
print(" "*(n-i),end=" ",sep=" ")
for j in range(0,i+1):
print('{0:6}'.format(a[i][j]),end=" ",sep=" ")
print()
THE END