Permutations with Divisibility
Application of Backtracking

Algorithms and Data Structures: TheAlgorist.com

System Design: SystemsDesign.Cloud

Low Level Design: LowLevelDesign.io
Problem Statement:
Suppose you have n integers labeled 1 through n.
A permutation of those n integers perm (1indexed) is considered a "Divisible Permutation" if for every i (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, return the number of the "Divisible Permutations" that you can construct.
Example 1:
Input: n = 2
Output: 2
Explanation:
The first beautiful arrangement is [1,2]:
 perm[1] = 1 is divisible by i = 1
 perm[2] = 2 is divisible by i = 2
The second beautiful arrangement is [2,1]:
 perm[1] = 2 is divisible by i = 1
 i = 2 is divisible by perm[2] = 1
Example 2:
Input: n = 1
Output: 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 rocksolid 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 indepth 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:
Abhishek Dey
A Visionary Software Engineer With A Mission To Empower Every Person & Every Organization On The Planet To Achieve More
Microsoft  University of Florida
If you have any feedback, please use this form: https://thealgorists.com/Feedback.
Follow Us On LinkedIn