Permutations with Divisibility
Application of Backtracking
-
Algorithms and Data Structures: TheAlgorist.com
-
System Design: DistributedComputing.dev
-
Low Level Design: LowLevelDesign.io
-
Frontend Engineering: FrontendEngineering.io
Problem Statement:
Suppose you have n integers from 1 through n.
A permutation of those n integers is considered a Divisible Permutation if for every i, where 1 <= i <= n, either of the following is true:
- perm[i] is divisible by i.
- i is divisible by perm[i].
Given an integer n, find the total number of the valid Divisible Permutations.
Example 1:
Input: n = 2
Output: 2
Explanation:
The first Divisible Permutation is [1,2]:
- permutation[1] = 1 is divisible by i = 1
- permutation[2] = 2 is divisible by i = 2
The second Divisible Permutation is [2,1]:
- permutation[1] = 2 is divisible by i = 1
- i = 2 is divisible by permutation[2] = 1
Solution:
- NOTE: I highly recommend going through the Backtracking chapters in the order they are given in the Index page to get the most out of it and be able to build a rock-solid understanding.
Prerequisites:
Algorithm:
This is a Premium content.
Please subscribe to the Algorithms course to access the detailed Algorithm discussion.
Java Code:
This is a Premium content.
Please subscribe to Algorithms course to access the code.
Python Code:
This is a Premium content.
Please subscribe to Algorithms course to access the code.
Don't forget to take in-depth look at the other backtracking problems in the below link, because that is what would make you comfortable with using the backtracking template and master the art of Backtracking:
Instructor:
If you have any feedback, please use this form: https://thealgorists.com/Feedback.


