From 32a1fd486128ab643a5f8c6b77e49d3c8472d6c3 Mon Sep 17 00:00:00 2001
From: Abhishek Jha <44729252+kehsihba19@users.noreply.github.com>
Date: Thu, 1 Oct 2020 00:24:59 +0530
Subject: [PATCH 1/2] Added Maths Section

---
 Maths/catalan.py       | 15 +++++++++++++++
 Maths/check_prime.py   | 18 ++++++++++++++++++
 Maths/gcd.py           |  9 +++++++++
 Maths/prime_factors.py | 21 +++++++++++++++++++++
 Maths/sieve.py         | 18 ++++++++++++++++++
 5 files changed, 81 insertions(+)
 create mode 100644 Maths/catalan.py
 create mode 100644 Maths/check_prime.py
 create mode 100644 Maths/gcd.py
 create mode 100644 Maths/prime_factors.py
 create mode 100644 Maths/sieve.py

diff --git a/Maths/catalan.py b/Maths/catalan.py
new file mode 100644
index 0000000..973d9fe
--- /dev/null
+++ b/Maths/catalan.py
@@ -0,0 +1,15 @@
+def catalan(n): 
+	if (n == 0 or n == 1): 
+		return 1
+	catalan = [0]*(n+1)
+	catalan[0] = 1
+	catalan[1] = 1
+	for i in range(2, n + 1): 
+		catalan[i] = 0
+		for j in range(i): 
+			catalan[i] = catalan[i] + catalan[j] * catalan[i-j-1] 
+	return catalan[n] 
+
+print("Enter value of n:")
+a=int(input())
+print(f"Catalan Number(nth) is : {catalan(a)}")
diff --git a/Maths/check_prime.py b/Maths/check_prime.py
new file mode 100644
index 0000000..c2187f0
--- /dev/null
+++ b/Maths/check_prime.py
@@ -0,0 +1,18 @@
+def check(n):
+	if(n==1):
+		return False
+	if(n==2 or n==3):
+		return True
+	i=2
+	while i*i<=n:
+		if(n%i==0):
+			return False
+		i+=1
+	return True
+
+print("Enter number :")
+a=int(input())
+if(check(a)):
+	print(f"{a} is a prime number")
+else:
+	print(f"{a} is not a prime number")
diff --git a/Maths/gcd.py b/Maths/gcd.py
new file mode 100644
index 0000000..b3bbb7e
--- /dev/null
+++ b/Maths/gcd.py
@@ -0,0 +1,9 @@
+def computeGCD(x, y): 
+   while(y): 
+       x, y = y, x % y 
+  
+   return x
+   
+print("Enter two numbers:")
+a,b=map(int,input().split())
+print(f"Gcd of {a} and {b} is {computeGCD(a,b)}")
diff --git a/Maths/prime_factors.py b/Maths/prime_factors.py
new file mode 100644
index 0000000..c9ea2ae
--- /dev/null
+++ b/Maths/prime_factors.py
@@ -0,0 +1,21 @@
+def prime_factors(n):
+	i=2
+	ans=[]
+	while i*i<=n:
+		if(n%i==0):
+			ans.append(i)
+			while(n%i==0):
+				n=n//i
+		i+=1
+	if(n!=1):
+		ans.append(n)
+	if(len(ans)==0):
+		print("No prime factors")
+	else:
+		print("Prime factors are : ",end=" ")
+		print(*ans)
+
+
+print("Enter number:")
+a=int(input())
+prime_factors(a)
diff --git a/Maths/sieve.py b/Maths/sieve.py
new file mode 100644
index 0000000..8d708b3
--- /dev/null
+++ b/Maths/sieve.py
@@ -0,0 +1,18 @@
+def sieve(n):
+	prime=[1]*(n+1)
+	prime[0],prime[1]=0,0
+	i=2
+	while i*i<=n:
+		if(prime[i]):
+			for j in range(i*i,n+1,i):
+				prime[j]=0
+		i+=1
+	print("Primes are : ")
+	for i in range(0,n+1):
+		if(prime[i]):
+			print(i,end=" ")
+	print()
+
+print("Enter upper bound of prime:")
+a=int(input())
+sieve(a)

From 6ad8dec4ff09abd603d7225b25e1c67b5926ba25 Mon Sep 17 00:00:00 2001
From: Abhishek Jha <44729252+kehsihba19@users.noreply.github.com>
Date: Thu, 1 Oct 2020 00:32:39 +0530
Subject: [PATCH 2/2] Updated Readme with maths section

---
 README.md | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/README.md b/README.md
index def3d69..0df3470 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,16 @@ Pune, Maharashtra, India.<br />
     * [Finding the length of linked list](Linked%20Lists/P01_FindingLengthOfLinkedList.py)
     * [Reversing the linked list](Linked%20Lists/P02_ReversingLinkedList.py)
 
+# Maths
+
+* [Maths Concept](Maths)
+    * [Catalan Number](Maths/catalan.py)
+    * [Check Prime](Maths/check_prime.py)
+    * [GCD](Maths/gcd.py)
+    * [Prime Factors](Maths/prime_factors.py)
+    * [Sieve of eratosthenes](Maths/sieve.py)
+
+
 # Stack
 
 * [Stack Concept](https://github.com/OmkarPathak/Data-Structures-using-Python/tree/master/Stack/Stack.ipynb)