Given two integers **N** and **M**, the task is count the total words of **M** character length formed by the given **N** distinct characters such that the words have at least one character repeated more than once.

**Examples:**

Input:N = 3, M = 2

Output:3

Suppose the characters are {‘a’, ‘b’, ‘c’}

All 2 length words that can be formed with these characters

are “aa”, “ab”, “ac”, “ba”, “bb”, “bc”, “ca”, “cb” and “cc”.

Out of these words only “aa”, “bb” and “cc” have

at least one character repeated more than once.

Input:N = 10, M = 5

Output:69760

**Approach:**

Total number of M character words possible from N characters, **total = N ^{M}**.

Total number of M character words possible from N characters where no character repeats itself,

**noRepeat =**.

^{N}P_{M}So, total words where at least a single character appear more than once is

**total – noRepeat**i.e.

**N**.

^{M}–^{N}P_{M}Below is the implementation of the above approach:

## C++

`// C++ implementation for the above approach ` `#include <math.h> ` `#include <iostream> ` `using` `namespace` `std; ` ` ` `// Function to return the ` `// factorial of a number ` `int` `fact(` `int` `n) ` `{ ` ` ` `if` `(n <= 1) ` ` ` `return` `1; ` ` ` `return` `n * fact(n - 1); ` `} ` ` ` `// Function to return the value of nPr ` `int` `nPr(` `int` `n, ` `int` `r) ` `{ ` ` ` `return` `fact(n) / fact(n - r); ` `} ` ` ` `// Function to return the total number of ` `// M length words which have at least a ` `// single character repeated more than once ` `int` `countWords(` `int` `N, ` `int` `M) ` `{ ` ` ` `return` `pow` `(N, M) - nPr(N, M); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `N = 10, M = 5; ` ` ` `cout << (countWords(N, M)); ` ` ` `return` `0; ` `} ` ` ` `// This code is contributed by jit_t ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `class` `GFG { ` ` ` ` ` `// Function to return the ` ` ` `// factorial of a number ` ` ` `static` `int` `fact(` `int` `n) ` ` ` `{ ` ` ` `if` `(n <= ` `1` `) ` ` ` `return` `1` `; ` ` ` `return` `n * fact(n - ` `1` `); ` ` ` `} ` ` ` ` ` `// Function to return the value of nPr ` ` ` `static` `int` `nPr(` `int` `n, ` `int` `r) ` ` ` `{ ` ` ` `return` `fact(n) / fact(n - r); ` ` ` `} ` ` ` ` ` `// Function to return the total number of ` ` ` `// M length words which have at least a ` ` ` `// single character repeated more than once ` ` ` `static` `int` `countWords(` `int` `N, ` `int` `M) ` ` ` `{ ` ` ` `return` `(` `int` `)Math.pow(N, M) - nPr(N, M); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `N = ` `10` `, M = ` `5` `; ` ` ` `System.out.print(countWords(N, M)); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation for the above approach ` ` ` `# Function to return the ` `# factorial of a number ` `def` `fact(n): ` ` ` ` ` `if` `(n <` `=` `1` `): ` ` ` `return` `1` `; ` ` ` `return` `n ` `*` `fact(n ` `-` `1` `); ` ` ` `# Function to return the value of nPr ` `def` `nPr(n, r): ` ` ` ` ` `return` `fact(n) ` `/` `/` `fact(n ` `-` `r); ` ` ` `# Function to return the total number of ` `# M length words which have at least a ` `# single character repeated more than once ` `def` `countWords(N, M): ` ` ` ` ` `return` `pow` `(N, M) ` `-` `nPr(N, M); ` ` ` `# Driver code ` `N ` `=` `10` `; M ` `=` `5` `; ` `print` `(countWords(N, M)); ` ` ` `# This code is contributed by Code_Mech ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to return the ` ` ` `// factorial of a number ` ` ` `static` `int` `fact(` `int` `n) ` ` ` `{ ` ` ` `if` `(n <= 1) ` ` ` `return` `1; ` ` ` `return` `n * fact(n - 1); ` ` ` `} ` ` ` ` ` `// Function to return the value of nPr ` ` ` `static` `int` `nPr(` `int` `n, ` `int` `r) ` ` ` `{ ` ` ` `return` `fact(n) / fact(n - r); ` ` ` `} ` ` ` ` ` `// Function to return the total number of ` ` ` `// M length words which have at least a ` ` ` `// single character repeated more than once ` ` ` `static` `int` `countWords(` `int` `N, ` `int` `M) ` ` ` `{ ` ` ` `return` `(` `int` `)Math.Pow(N, M) - nPr(N, M); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `static` `public` `void` `Main () ` ` ` `{ ` ` ` `int` `N = 10, M = 5; ` ` ` `Console.Write(countWords(N, M)); ` ` ` `} ` `} ` ` ` `// This code is contributed by ajit. ` |

*chevron_right*

*filter_none*

**Output:**

69760

Attention reader! Don’t stop learning now. Get hold of all the important Java and Collections concepts with the **Fundamentals of Java and Java Collections Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Sub-strings that start and end with one character and have at least one other
- Count numbers up to N which contains at least one repeated digit
- Count divisors of n that have at-least one digit common with n
- Longest subsequence such that adjacent elements have at least one common digit
- Count of numbers from the range [L, R] which contains at least one digit that divides K
- Why Java Interfaces Cannot Have Constructor But Abstract Classes Can Have?
- Minimize length of Substrings containing at least one common Character
- Count elements in the given range which have maximum number of divisors
- Count the numbers < N which have equal number of divisors as K
- Count of integers in a range which have even number of odd digits and odd number of even digits
- Count of numbers in range which are divisible by M and have digit D at odd places
- Count number of rotated strings which have more number of vowels in the first half than second half
- Count pairs in an array such that frequency of one is at least value of other
- Count pairs in an array such that at least one element is prime
- Count of binary strings of given length consisting of at least one 1
- Count pairs in an array containing at least one even value
- Count of subarrays of size K having at least one pair with absolute difference divisible by K-1
- Find k numbers which are powers of 2 and have sum N | Set 1
- Find the number of distinct pairs of vertices which have a distance of exactly k in a tree
- Find the number of integers x in range (1,N) for which x and x+1 have same number of divisors

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.