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.
* [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)