# Display all possible permutations of a number divisible by K

Here given code implementation process.

``````// C Program
// Display all possible permutations of a number divisible by K
#include <stdio.h>
#include <stdlib.h> // for atoi
#include <string.h> // strlen

// Swap two elements in given string
// i and j is location
void swap(char str[], int i, int j)
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
void permutation(char str[], int index, int k, int n)
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (str[0] != '0' && index > 1)
{
if (atoi(str) % k == 0)
{

printf("\n %s", str);
}
}
return;
}
for (int i = index; i < n; ++i)
{
//swap the array element
swap(str, i, index);
permutation(str, index + 1, k, n);
//swap the array element
swap(str, i, index);
}
}
void divisiblePermutation(char num[], int k)
{
// Get the size
int n = strlen(num);
printf("\n Given num : %s", num);
printf("\n Display k : %d", k);
permutation(num, 0, k, n);
printf("\n");
}
int main()
{
// Given number1
char num1[] = "5032";
int k = 8;
divisiblePermutation(num1, k);
// Given number2
char num2[] = "45261";
k = 7;
divisiblePermutation(num2, k);
return 0;
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````/*
Java Program
Display all possible permutations of a number divisible by K
*/
public class Divisibility
{
// Swap two elements in given string
// i and j is location
public void swap(char[] str, int i, int j)
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
public void permutation(
char[] str, int index,
int k, int n, String output)
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.length() != 0 && output.charAt(0) != '0' && index > 1)
{
if (Integer.parseInt(output) % k == 0)
{
System.out.print("\n " + output);
}
}
return;
}
for (int i = index; i < n; ++i)
{
//swap the array element
swap(str, i, index);
permutation(str, index + 1, k, n, output + str[index]);
//swap the array element
swap(str, i, index);
}
}
public void divisiblePermutation(int num, int k)
{
// Converting int num to string
String text = "" + num;
// Convert a string into char array
char[] str = text.toCharArray();
// Get the size
int n = text.length();
System.out.print("\n Given num : " + num);
System.out.print("\n Display k : " + k);
// Find permutation which is divisible by k
permutation(str, 0, k, n, "");
System.out.print("\n");
}
public static void main(String[] args)
{
// Given number1
int num = 5032;
int k = 8;
// Given number2
num = 45261;
k = 7;
}
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````// Include header file
#include <iostream>
#include <string>
using namespace std;
/*
C++ Program
Display all possible permutations of a number divisible by K
*/
class Divisibility
{
public:
// Swap two elements in given string
// i and j is location
string swap(string str, int i, int j)
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
return str;
}
void permutation(string str, int index, int k, int n, string output)
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.length() != 0 && output[0] != '0' && index > 1)
{
if (stoi(output) % k == 0)
{
cout << "\n " << output;
}
}
return;
}
for (int i = index; i < n; ++i)
{
//swap the array element
str = this->swap(str, i, index);
this->permutation(str, index + 1,
k, n, output  + str[index]);
//swap the array element
str = this->swap(str, i, index);
}
}
void divisiblePermutation(int num, int k)
{
// Converting int num to string
string text = to_string(num);

// Get the size
int n = text.length();
cout << "\n Given num : " << num;
cout << "\n Display k : " << k;
// Find permutation which is divisible by k
this->permutation(text, 0, k, n, "");
cout << "\n";
}
};
int main()
{
// Given number1
int num = 5032;
int k = 8;
// Given number2
num = 45261;
k = 7;
return 0;
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````// Include namespace system
using System;
/*
Csharp Program
Display all possible permutations of a number divisible by K
*/
public class Divisibility
{
// Swap two elements in given string
// i and j is location
public void swap(char[] str, int i, int j)
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
public void permutation(char[] str, int index, int k,
int n, String output)
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.Length != 0 && output[0] != '0' && index > 1)
{
if (Int32.Parse(output) % k == 0)
{
Console.Write("\n " + output);
}
}
return;
}
for (int i = index; i < n; ++i)
{
//swap the array element
this.swap(str, i, index);
this.permutation(str, index + 1, k, n, output + str[index]);
//swap the array element
this.swap(str, i, index);
}
}
public void divisiblePermutation(int num, int k)
{
// Converting int num to string
String text = "" + num;
// Convert a string into char array
char[] str = text.ToCharArray();
// Get the size
int n = text.Length;
Console.Write("\n Given num : " + num);
Console.Write("\n Display k : " + k);
// Find permutation which is divisible by k
this.permutation(str, 0, k, n, "");
Console.Write("\n");
}
public static void Main(String[] args)
{
// Given number1
int num = 5032;
int k = 8;
// Given number2
num = 45261;
k = 7;
}
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````package main

import "strconv"
import "fmt"
/*
Go Program
Display all possible permutations of a
number divisible by K
*/

// Swap two elements in given string
// i and j is location
func swap(str[]rune, i int, j int) {
var temp  = str[i]
str[i] = str[j]
str[j] = temp
}
func permutation(str[]rune, index int, k int,
n int, output string) {
if index == n {
// We consider n digit result.
// So decimal numbers are not start to zero.
if len(output) != 0 && output[0] != '0' && index > 1 {
var num , err = strconv.Atoi(output);
if err == nil && (num % k) == 0 {
fmt.Print("\n ", output)
}
}
return
}
for i := index ; i < n ; i++ {
//swap the array element
swap(str, i, index)
permutation(str, index + 1, k, n,
output + string(str[index]))
//swap the array element
swap(str, i, index)
}
}
func divisiblePermutation(num, k int) {
// Converting int num to string
var text string = strconv.Itoa(num)

// Convert a string into char array
// Get the size
var n int = len(text)

var str = []rune(text)
fmt.Print("\n Given num : ", num)
fmt.Print("\n Display k : ", k)
// Find permutation which is divisible by k
permutation(str, 0, k, n, "")
fmt.Print("\n")
}
func main() {

// Given number1
var num int = 5032
var k int = 8
divisiblePermutation(num, k)
// Given number2
num = 45261
k = 7
divisiblePermutation(num, k)
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````<?php
/*
Php Program
Display all possible permutations of a number divisible by K
*/
class Divisibility
{
// Swap two elements in given string
// i and j is location
public function swap(\$str, \$i, \$j)
{
\$temp = \$str[\$i];
\$str[\$i] = \$str[\$j];
\$str[\$j] = \$temp;
return \$str;
}
public	function permutation(\$str, \$index, \$k, \$n, \$output)
{
if (\$index == \$n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (strlen(\$output) != 0 && \$output[0] != '0' && \$index > 1)
{
if (((int)\$output) % \$k == 0)
{
echo("\n ".\$output);
}
}
return;
}
for (\$i = \$index; \$i < \$n; ++\$i)
{
//swap the array element
\$str = \$this->swap(\$str, \$i, \$index);
\$this->permutation(\$str, \$index + 1, \$k, \$n,
\$output.strval(\$str[\$index]));
//swap the array element
\$str = \$this->swap(\$str, \$i, \$index);
}
}
public	function divisiblePermutation(\$num, \$k)
{
// Converting int num to string
\$text = "".strval(\$num);
// Get the size
\$n = strlen(\$text);
echo("\n Given num : ".\$num);
echo("\n Display k : ".\$k);
// Find permutation which is divisible by k
\$this->permutation(\$text, 0, \$k, \$n, "");
echo("\n");
}
}

function main()
{
// Given number1
\$num = 5032;
\$k = 8;
// Given number2
\$num = 45261;
\$k = 7;
}
main();``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````/*
Node JS Program
Display all possible permutations of a number divisible by K
*/
class Divisibility
{
// Swap two elements in given string
// i and j is location
swap(str, i, j)
{
var temp = str[i];
str[i] = str[j];
str[j] = temp;
}
permutation(str, index, k, n, output)
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.length != 0 && output.charAt(0) != '0' && index > 1)
{
if (parseInt(output) % k == 0)
{
process.stdout.write("\n " + output);
}
}
return;
}
for (var i = index; i < n; ++i)
{
//swap the array element
this.swap(str, i, index);
this.permutation(str, index + 1, k, n, output + str[index]);
//swap the array element
this.swap(str, i, index);
}
}
divisiblePermutation(num, k)
{
// Converting int num to string
var text = "" + num;
// Convert a string into char array
var str = (text).split('');
// Get the size
var n = text.length;
process.stdout.write("\n Given num : " + num);
process.stdout.write("\n Display k : " + k);
// Find permutation which is divisible by k
this.permutation(str, 0, k, n, "");
process.stdout.write("\n");
}
}

function main()
{
// Given number1
var num = 5032;
var k = 8;
// Given number2
num = 45261;
k = 7;
}
main();``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````#    Python 3 Program
#    Display all possible permutations of a number divisible by K
class Divisibility :
#  Swap two elements in given string
#  i and j is location
def swap(self, s, i, j) :
temp = s[i]
s[i] = s[j]
s[j] = temp

def permutation(self, s, index, k, n, output) :
if (index == n) :
#  We consider n digit result.
#  So decimal numbers are not start to zero.
if (len(output) != 0 and output[0] != '0'
and index > 1) :
if (int(output) % k == 0) :
print("\n ", output, end = "")

return

i = index
while (i < n) :
# swap the list element
self.swap(s, i, index)
self.permutation(s, index + 1, k, n, output + str(s[index]))
# swap the list element
self.swap(s, i, index)
i += 1

def divisiblePermutation(self, num, k) :
#  Converting int num to string
text =  str(num)
#  Convert a string into char list
s = list(text)
#  Get the size
n = len(text)
print("\n Given num : ", num, end = "")
print("\n Display k : ", k, end = "")
#  Find permutation which is divisible by k
self.permutation(s, 0, k, n, "")
print(end = "\n")

def main() :
#  Given number1
num = 5032
k = 8
#  Given number2
num = 45261
k = 7

if __name__ == "__main__": main()``````

#### Output

`````` Given num :  5032
Display k :  8
5032
5320
3520

Given num :  45261
Display k :  7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````#    Ruby Program
#    Display all possible permutations of a number divisible by K
class Divisibility
#  Swap two elements in given string
#  i and j is location
def swap(str, i, j)
temp = str[i]
str[i] = str[j]
str[j] = temp
return str
end

def permutation(str, index, k, n, output)
if (index == n)
#  We consider n digit result.
#  So decimal numbers are not start to zero.
if (output.length != 0 && output[0] != '0' && index > 1)
if (Integer(output) % k == 0)
print("\n ", output)
end

end

return
end

i = index
while (i < n)
# swap the array element
str = self.swap(str, i, index)
self.permutation(str, index + 1, k, n, output + str[index].to_s)
# swap the array element
str = self.swap(str, i, index)
i += 1
end

end

def divisiblePermutation(num, k)
#  Converting int num to string
text = ""+ num.to_s
#  Convert a string into char array
str = text.chars
#  Get the size
n = text.length
print("\n Given num : ", num)
print("\n Display k : ", k)
#  Find permutation which is divisible by k
self.permutation(str, 0, k, n, "")
print("\n")
end

end

def main()
#  Given number1
num = 5032
k = 8
#  Given number2
num = 45261
k = 7
end

main()``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254
``````
``````import scala.collection.mutable._;
/*
Scala Program
Display all possible permutations of a number divisible by K
*/
class Divisibility()
{
// Swap two elements in given string
// i and j is location
def swap(str: Array[Char], i: Int, j: Int): Unit = {
var temp: Char = str(i);
str(i) = str(j);
str(j) = temp;
}
def permutation(str: Array[Char],
index: Int, k: Int, n: Int, output: String): Unit = {
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.length() != 0 &&
output.charAt(0) != '0' && index > 1)
{
if (Integer.parseInt(output) % k == 0)
{
print("\n " + output);
}
}
return;
}
var i: Int = index;
while (i < n)
{
//swap the array element
swap(str, i, index);
permutation(str, index + 1, k,
n, output + str(index).toString());
//swap the array element
swap(str, i, index);
i += 1;
}
}
def divisiblePermutation(num: Int, k: Int): Unit = {
// Converting int num to string
var text: String = "" + num.toString();
// Convert a string into char array
var str: Array[Char] = text.toCharArray();
// Get the size
var n: Int = text.length();
print("\n Given num : " + num);
print("\n Display k : " + k);
// Find permutation which is divisible by k
permutation(str, 0, k, n, "");
print("\n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Divisibility = new Divisibility();
// Given number1
var num: Int = 5032;
var k: Int = 8;
// Given number2
num = 45261;
k = 7;
}
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````import Foundation;
/*
Swift 4 Program
Display all possible permutations of a number divisible by K
*/
class Divisibility
{
// Swap two elements in given string
// i and j is location
func swap(_ str: inout[Character], _ i: Int, _ j: Int)
{
let temp: Character = str[i];
str[i] = str[j];
str[j] = temp;
}
func permutation(_ str: inout[Character],
_ index: Int, _ k: Int,
_ n: Int, _ output: String)
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.count  != 0 && Array(output)[0]  != "0" && index > 1)
{
if (Int(output)! % k == 0)
{
print("\n ", output, terminator: "");
}
}
return;
}
var i: Int = index;
while (i < n)
{
//swap the array element
self.swap(&str, i, index);
self.permutation(&str, index + 1,
k, n, output + String(str[index]));
//swap the array element
self.swap(&str, i, index);
i += 1;
}
}
func divisiblePermutation(_ num: Int, _ k: Int)
{
// Converting int num to string
let text: String =  String(num);
// Convert a string into char array
var str: [Character] = Array(text);
// Get the size
let n: Int = text.count;
print("\n Given num : ", num, terminator: "");
print("\n Display k : ", k, terminator: "");
// Find permutation which is divisible by k
self.permutation(&str, 0, k, n, "");
print(terminator: "\n");
}
}
func main()
{
// Given number1
var num: Int = 5032;
var k: Int = 8;
// Given number2
num = 45261;
k = 7;
}
main();``````

#### Output

`````` Given num :  5032
Display k :  8
5032
5320
3520

Given num :  45261
Display k :  7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````
``````/*
Kotlin Program
Display all possible permutations of a number divisible by K
*/
class Divisibility
{
// Swap two elements in given string
// i and j is location
fun swap(str: Array < Char > , i: Int, j: Int): Unit
{
val temp: Char = str[i];
str[i] = str[j];
str[j] = temp;
}
fun permutation(str: Array < Char > ,
index: Int, k: Int, n: Int,
output: String): Unit
{
if (index == n)
{
// We consider n digit result.
// So decimal numbers are not start to zero.
if (output.length != 0 &&
output.get(0) != '0' && index > 1)
{
if (output.toInt() % k == 0)
{
print("\n " + output);
}
}
return;
}
var i: Int = index;
while (i < n)
{
//swap the array element
this.swap(str, i, index);
this.permutation(str, index + 1, k, n,
output + str[index].toString());
//swap the array element
this.swap(str, i, index);
i += 1;
}
}
fun divisiblePermutation(num: Int, k: Int): Unit
{
// Converting int num to string
val text: String = "" + num.toString();
// Convert a string into char array
val str: Array < Char > = text.toCharArray().toTypedArray();
// Get the size
val n: Int = text.length;
print("\n Given num : " + num);
print("\n Display k : " + k);
// Find permutation which is divisible by k
this.permutation(str, 0, k, n, "");
print("\n");
}
}
fun main(args: Array < String > ): Unit
{
// Given number1
var num: Int = 5032;
var k: Int = 8;
// Given number2
num = 45261;
k = 7;
}``````

#### Output

`````` Given num : 5032
Display k : 8
5032
5320
3520

Given num : 45261
Display k : 7
45612
42651
41265
54621
52416
52164
25641
26145
21546
65142
64512
61425
15246
15624
16254``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.