Algorithms Binary exponentiation (Power in log N) Binary exponentiation is an algorithm to find the power of any number N raise to an number M (N^M) in logarithmic time O(log M). The normal approach takes O(M) time provided multiplication takes constant time.

Algorithms Check if a number is an Armstrong Number An Armstrong number is an integer such that the sum of the digits raised to the power of the number of digits is equal to the number itself. We verify it in O(logN * loglogN) time.

Algorithms Easiest IMO problems that will make you feel like a Genius IMO problems are known to be difficult but we have identified 5 problems which you can solve without using a paper. This will make you feel like a GENIUS

Algorithms Subset of maximum size with no pair sum divisible by 'K' Our focus is to find the subset of largest size in which the sum of elements of a pair is not divisible by K. Using mathematical ideas, we solved it in linear time.

Algorithms Difference between square of sum (Î£n)Â² and sum of squares (Î£nÂ²) In this problem, we to need find the difference between the sum of squares of all numbers from 1 to N and the square of the sum of 1 to N. We solved it in constant time.

Algorithms Sum of squares of first N numbers ( Î£ nÂ² ) Our focus is to find the sum of the quares of the first N numbers that is from 1 to N. With an insightful equation, we can solve this in constant time O(1).

Algorithms Sum of first N numbers ( Î£ n ) In this problem, we will find the sum of the first N integers that is 1 to N. We can solve this in constant time O(1) by using an insightful formula.

Algorithms Smallest number with all numbers from 1 to N as multiples We will find the smallest number that is perfectly divisible by all numbers from 1 to N and used 3 approaches: Brute force O(N^3 * log N), using prime factorization O(N * log N * log N) and using insights into the problem O(N * log log N).

Algorithms Largest palindrome made from product of two 3-digit numbers We will find the largest palindrome that is a product of two three-digit numbers. In brute force, there are 810000 comparisons which we have reduced to 362 computations based on three deep insights.

Algorithms Largest prime factor of a number (Project Euler Problem 3) We need to find the largest prime factor of a given number N. We will bring in some insights and solve this in O(âˆšN log log N) time complexity.

Algorithms Sum of Even Fibonacci Numbers (Project Euler Problem 2) The problem is find the sum of even fibonacci numbers that is fibonacci numbers that are even and is less than a given number N. We will present 3 insightful ideas to solve this efficiently.

Algorithms Sum of multiples of 3 and 5 (Project Euler Problem 1) The problem at hand is to find the sum of all numbers less than a given number N which are divisible by 3 and/ or 5 using a constant time algorithm.

Algorithms Find point of 2D Line Intersection The point of intersection of two 2D lines can be calculated using two algorithms namely Elimination method and Determinant method which takes constant time O(1)

Algorithms Secant Method to find root of any function Secant Method is a numerical method for solving an equation in one unknown. It avoids this issue of Newtonâ€™s method by using a finite difference to approximate the derivative.

Algorithms Newton Raphson Method to find root of any function Newton's Method, also known as Newton-Raphson method, named after Isaac Newton and Joseph Raphson, is a popular iterative method to find a good approximation for the root of a real-valued function f(x) = 0.

Algorithms Regula Falsi Method for finding root of a polynomial Regula Falsi method or the method of false position is a numerical method for solving an equation in one unknown. It is quite similar to bisection method algorithm and is one of the oldest approaches.

Algorithms Bisection Method for finding the root of any polynomial Bisection Method for root finding (also called the interval halving method, the binary search method, or the dichotomy method) is based on the Bolzanoâ€™s theorem for continuous functions

Algorithms Find all primes with Sieve of Sundaram Sieve of Sundaram is an efficient algorithm used to find all the prime numbers till a specific number say N.

Algorithms Finding the Lexicographical Next Permutation in O(N) time complexity In Lexicographical Permutation Algorithm we will find the immediate next smallest Integer number or sequence permutation. Finding all permutations take O(N!) time complexity but we present an efficient algorithm which can solve this in O(N) time complexity

Algorithms Heapâ€™s algorithm for generating permutations Heap's Algorithm is used to generate all the possible permutation of n-decimals of a number. It generates each permutation from the previous one by interchanging a single pair of elements; the other nâˆ’2 elements are not disturbed. For N numbers, it takes O(N!) time complexity

Algorithms Number of unique partitions of an integer Given a positive integer, the problem is to find all the Unique Partitions of the number. We can understand the above problem using some basic examples. Naive approach takes O((N^N)log N) time complexity while Dynamic programming takes O(2^N)

Algorithms Distance between two points in 2D space Distance between two points is calculated by creating a right-angled triangle using the two points.The line between the two points is the hypotenuse (the longest side, opposite to the 90Â° angle). We used the Distance formula derived from Pythagorean theorem with a time complexity of O((log N)^2)

Algorithms Area of Polygon: Shoelace formula Given coordinates of vertices of polygon, Area of Polygon is calculated using Shoelace formula described by Mathematician and Physicist Carl Friedrich Gauss where polygon vertices are described by their Cartesian coordinates in the Cartesian plane. The time complexity is O(N) with O(1) space

Algorithms Extended Euclidean Algorithm We will demonstrate Extended Euclidean Algorithm. We will see how you can calculate the greatest common divisor in a naive way which takes O(N) time complexity which we can improve to O(log N) time complexity using Euclid's algorithm. Extended Euclidean Algorithm takes O(log N) time complexity

Algorithms Sieve of Atkin Sieve of Atkin is an algorithm used to find all prime numbers upto a given number (say N) and does so in O(N) time complexity. With a modified version with enumerating lattice points variation, the time complexity goes to O(N / log log N). It is computationally efficient than Sieve of Eratosthenes