Optional Assignment 1
Optional Assignment 1
October 8, 2018
1 Optional Assignment - 1
1.0.1 Q1- Write aprogram that Inputs a number and prints the multiplication table of that
number
In [1]: # Keyboard input for numbers
num = input("Input intger number for multiplication - ")
#try to catch error
try:
num=float(num)
except:
print("Please enter integer number")
1
1.0.2 Q2. Write a program to find out twin prime less than 1000.
1.0.3 reference -
1.0.4 1. https://www.geeksforgeeks.org/twin-prime-numbers-between-1-and-n/
1.0.5 2. https://www.geeksforgeeks.org/sieve-of-eratosthenes/
1.0.6 3. https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
1.0.7 4. https://www.programiz.com/python-programming/examples/prime-number-intervals
1.0.8 Algorithm
Input: an integer n > 1.
Let A be an array of Boolean values, indexed by integers 2 to n, initially all set to true.
for i = 2, 3, 4, ..., not exceeding n: if A[i] is true: for j = i2, i2+i, i2+2i, i2+3i, ..., not exceeding n:
A[j] := false.
Output: all i such that A[i] is true.
for j in range(2,i):
if (i%j)==0:
break
else:
# print(i)
prime.append(i)
twin_prime = []
#add -1 for IndexError: list index out of range
for p in range(len(prime)-1):
#print(prime[p+1]-prime[p])
if (prime[p+1]-prime[p]) == 2:
tp=(prime[p],prime[p+1])
#print(tp)
twin_prime.append(tp)
print(twin_prime)
[(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73), (101, 103), (107, 1
2
1.0.9 Q3. Write a program to find out the prime factors of a number.
In [3]: """
Input input number
"""
import math
multiple= int(math.sqrt(num)+1)
"""
n = input("Input number of objects 'n' -")
r = input("Input no. obj. 'n' taken times 'r' =")
try:
r=int(r)
# print(r)
n=int(n)
# print(n)
except:
print("Please enter integer number")
#FACTORIALS
3
#duplicate value n since vale of n changes during while iterartion
nf=n
n_factorial=1
if nf==0 or nf==1:
n_factorial=1
else:
while nf>0:
n_factorial= n_factorial*nf
# print(n_factorial)
nf-=1
#(n-r)!
# print("n_factorial",n_factorial)
# print(n)
nr= n-r
# print(nr)
nr_factorial=1
if nr==0 or nr==1:
n_factorial=1
else:
while nr>0:
nr_factorial= nr_factorial*nr
# print(nr_factorial)
nr-=1
# print(nr_factorial)
# while nr>0
r_factorial=1
if r==0 or r==1:
r_factorial=1
else:
while r>0:
r_factorial= r_factorial*r
# print(r_factorial)
r-=1
# print(r_factorial)
# premutation
print("\n")
print("Permutation = ",n_factorial/nr_factorial)
print("\n")
print("combination =",n_factorial/(nr_factorial*r_factorial))
4
Input number of objects 'n' -5
Input no. obj. 'n' taken times 'r' =2
Permutation = 20.0
combination = 10.0
l=[]
if n==0 or n==1:
print("Binary of {} is {}".format(n,n))
else:
num=n
while num>0:
b=num%2
l.append(b)
# print(b)
num=num//2
(l.reverse())
print("Binary of {} is {}".format(n,l))
Ref:- https://en.wikipedia.org/wiki/Narcissistic_number
5
Input integer
else:
return print("input must be integer")
################### Q6 - b ArmstrongNumber()
def ArmstrongNumber(n):
'''
Input - Intgers for which Armstrong number is to be found
Output - Armstrong Number
that is, number is the sum of its own digits each raised to the power of the number
'''
n=str(n)
power=len(n)
# print(power)
intial=0
if str.isdigit(n):
for i in n:
# print(i)
i=int(i)
intial += i**power
# print(intial)
return intial
else:
return print("input must be integer")
################### Q6 - c ArmstrongNumber()
def isArmstrong(n):
"""
Check Wheather number is armstrong number or not
"""
n=str(n)
if str.isdigit(n):
6
sumn = ArmstrongNumber(n)
if int(n)==sumn:
return True
else:
return False
else:
return print("input must be integer")
def ArmstrongNumberList(LowerLimit,UpperLimit):
'''
Function return the list of armstrong number in range(lower,upper)
'''
Armlist=[]
for i in range(LowerLimit,UpperLimit+1):
# print(i)
# a = ArmstrongNumber(i)
# print(i,'\t',a)
if isArmstrong(i):
Armlist.append(i)
else:
continue
return Armlist
print("Cube sum of 83 is",cubesum(83),'\n')
print('Armstrong Number list',ArmstrongNumberList(0,10000))
Armstrong Number list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474]
1.0.13 Q7. write a function prodDigits() that input a number and returns products of digit of
that number
In [10]: def prodDigits(n):
'''
Function returns the product of digits of input numbers
'''
n=str(n)
intial=1
if str.isdigit(n):
if len(n)==1:
return int(n)
7
else:
for i in n:
# print(i)
i=int(i)
intial *= i
# print(intial)
return intial
else:
return print("input must be integers")
In [12]: prodDigits(669)
Out[12]: 324
def MPersistence(n):
'''
Function returns Multiplicative Persistance of given number
'''
length=len(str(n))
count=0
while length>1:
n=prodDigits(n)
length=len(str(n))
count+=1
return count
8
1.0.15 Q9. write a function sumPdivisor()
In [17]: def sumPdivisor(n):
'''
Function returns sum of proper divisors of given numbers
'''
n=str(n)
if str.isdigit(n):
result=0
for i in range(1,int(n)):
if (int(n)%i)==0:
# print(i)
# print('\n')
result+=i
# print(result)
return result
else:
return print("input must be integer")
print('Proper divisor of 36 is: ',sumPdivisor(36))
1.0.16 Q10. Write a program to print all the perfect number in given range
In [19]: #
try:
lower=int(input("Input lower range"))
upper=int(input("Input Upper range"))
except:
print('input must be integer number')
perfectNumber=[]
for i in range(lower,upper+1):
# a=sumPdivisor(i)
if i==sumPdivisor(i):
perfectNumber.append(i)
else:
continue
print(perfectNumber)
9
1.0.17 Q11. write function to print amicable numbers pair
In [20]: def amicable_pair(lower, upper):
result = []
for x in range(lower,upper+1):
y = sumPdivisor(x)
if sumPdivisor(y) == x and x != y:
result.append(tuple(sorted((x,y))))
return set(result)
amicable_pair(200,1000)
1.0.18 Q12. Write a program which can filter odd numbers in a list using filter function
In [21]: def oddNumber(num):
if num%2!=0:
return num
#for Q14
def evenNumber(num):
if num%2==0:
return num
number_list=range(1,100)
print(number_list,'\n')
odd_number=list(filter(oddNumber,number_list))
print(odd_number)
range(1, 100)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49,
1.0.19 Q13.Write a program which map to make a list whose elements are cube of elements in
givven list
In [22]: def cubeOfNumber(num):
return num**3
lst=range(1,11)
cube=list(map(cubeOfNumber,lst))
print(cube)
10
1.0.20 Q14 Write a program which can map() and filter to make list whose elements are cube
of even number in a given list
In [23]: lst=range(1,11)
cubeEven=list(map(cubeOfNumber,filter(evenNumber,lst)))
print(cubeEven)
11