From 768a39d8322730cf8f89a84b9d2d1086118fc8cc Mon Sep 17 00:00:00 2001 From: Shivam Arora Date: Fri, 23 Nov 2018 22:21:07 +0530 Subject: [PATCH] Program for finding the HCF,LCM and Palindrome using and recursion and non recursion --- Maths/find_hcf.py | 22 ++++++++++++++++++++++ Maths/find_lcm.py | 17 +++++++++++++++++ other/palindrome.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 Maths/find_hcf.py create mode 100644 Maths/find_lcm.py create mode 100644 other/palindrome.py diff --git a/Maths/find_hcf.py b/Maths/find_hcf.py new file mode 100644 index 000000000..e4315d8d3 --- /dev/null +++ b/Maths/find_hcf.py @@ -0,0 +1,22 @@ +# Program to find the HCF of two Numbers +def find_hcf(num_1, num_2): + if num_1 == 0: + return num_2 + if num_2 == 0: + return num_1 + # Base Case + if num_1 == num_2: + return num_1 + if num_1 > num_2: + return find_hcf(num_1 - num_2, num_2) + return find_hcf(num_1, num_2 - num_1) + + +def main(): + num_1 = 24 + num_2 = 34 + print('HCF of %s and %s is %s:' % (num_1, num_2, find_hcf(num_1, num_2))) + + +if __name__ == '__main__': + main() diff --git a/Maths/find_lcm.py b/Maths/find_lcm.py new file mode 100644 index 000000000..58beb3e37 --- /dev/null +++ b/Maths/find_lcm.py @@ -0,0 +1,17 @@ +def find_lcm(num_1, num_2): + max = num_1 if num_1 > num_2 else num_2 + while (True): + if ((max % num_1 == 0) and (max % num_2 == 0)): + break + max += 1 + return max + + +def main(): + num_1 = 12 + num_2 = 76 + print(find_lcm(num_1, num_2)) + + +if __name__ == '__main__': + main() diff --git a/other/palindrome.py b/other/palindrome.py new file mode 100644 index 000000000..990ec844f --- /dev/null +++ b/other/palindrome.py @@ -0,0 +1,31 @@ +# Program to find whether given string is palindrome or not +def is_palindrome(str): + start_i = 0 + end_i = len(str) - 1 + while start_i < end_i: + if str[start_i] == str[end_i]: + start_i += 1 + end_i -= 1 + else: + return False + return True + + +# Recursive method +def recursive_palindrome(str): + if len(str) <= 1: + return True + if str[0] == str[len(str) - 1]: + return recursive_palindrome(str[1:-1]) + else: + return False + + +def main(): + str = 'ama' + print(recursive_palindrome(str.lower())) + print(is_palindrome(str.lower())) + + +if __name__ == '__main__': + main()