 GFG App
Open App Browser
Continue

# Count of numbers of length N having prime numbers at odd indices and odd numbers at even indices

Given a number N, the task is to calculate the count of numbers of length N having prime numbers at odd indices and odd numbers at even indices.

Example:

Input :  N = 1
Output:   5
Explanation : All valid numbers length 1 are 1, 3, 5, 7, 9, here we have only 1 odd index, therefore we have 5 valid numbers.

Input: N = 2
Output:  20
Explanation: There are 20 valid numbers of length 2.

Approach :  The problem can be solved with the help of combinatorics. The digits at odd indices have 4 choices and the digits at even indices have 5 choices.
Follow the steps to solve the problem:

• There are 5 choices for even indices (1, 3, 5, 7, 9 ) and 4 choices for odd indices (2, 3, 5, 7 ).
• For a number of length N, there will be N/2 odd indices and (N/2 + N%2) even indices.
• So, the number of ways to fill N/2 odd indices are  4 N/2.
• And  the number of ways to fill even indices are  5(N/2 + N%2).
• Hence, the total count of all the valid numbers will be 4N/2  * 5 (N/2 + N%2).

Below is the implementation of above approach:

## C++

 `// c++ program to Count of numbers of length` `// N having prime numbers at odd indices and ` `// odd numbers at even indices` `#include` `using` `namespace` `std;` `// function to find total number of ways` `int` `find_Numb_ways(``int` `n)` `{` `    ``// No of odd indices in n-digit number` `    ``int` `odd_indices = n/2;` `  `  `    ``// No of even indices in n-digit number` `    ``int` `even_indices = (n / 2) + (n % 2);` `  `  `    ``//  No of ways of arranging prime number ` `    ``//  digits in odd indices` `    ``int` `arr_odd = ``pow``(4, odd_indices);` `  `  `    ``//   No of ways of arranging odd number` `    ``//  digits in even indices` `    ``int` `arr_even = ``pow``(5, even_indices);` `  `  `    ``// returning the total number of ways` `    ``return` `arr_odd * arr_even;` `}`   `// drive code` `int` `main()` `{` `    ``int` `n = 4;` `    ``cout << find_Numb_ways(n) << endl;` `    ``return` `0;` `}`   `// This code is contributed by kondamrohan02.`

## Java

 `// Java program to Count of numbers of length` `// N having prime numbers at odd indices and ` `// odd numbers at even indices` `import` `java.util.*;`   `class` `GFG` `{`   `// function to find total number of ways` `static` `int` `find_Numb_ways(``int` `n)` `{` `  `  `    ``// No of odd indices in n-digit number` `    ``int` `odd_indices = n/``2``;` `  `  `    ``// No of even indices in n-digit number` `    ``int` `even_indices = (n / ``2``) + (n % ``2``);` `  `  `    ``//  No of ways of arranging prime number ` `    ``//  digits in odd indices` `    ``int` `arr_odd = (``int``)Math.pow(``4``, odd_indices);` `  `  `    ``//   No of ways of arranging odd number` `    ``//  digits in even indices` `    ``int` `arr_even = (``int``)Math.pow(``5``, even_indices);` `  `  `    ``// returning the total number of ways` `    ``return` `arr_odd * arr_even;` `}`   `    ``// Driver Code` `    ``public` `static` `void` `main(String[] args) {` `        ``int` `n = ``4``;` `     ``System.out.print(find_Numb_ways(n));`   `    ``}` `}`   `// This code is contributed by code_hunt.`

## Python3

 `# python program for above approach` `def` `count(N):`   `    ``# No of odd indices in N-digit number` `    ``odd_indices ``=` `N``/``/``2`   `    ``# No of even indices in N-digit number` `    ``even_indices ``=` `N``/``/``2` `+` `N ``%` `2`   `    ``# No of ways of arranging prime number ` `    ``# digits in odd indices` `    ``arrange_odd ``=` `4` `*``*` `odd_indices`   `    ``# No of ways of arranging odd number` `    ``# digits in even indices` `    ``arrange_even ``=` `5` `*``*` `even_indices`   `    ``# returning the total number of ways` `    ``return` `arrange_odd ``*` `arrange_even`     `# Driver code` `if` `__name__ ``=``=` `"__main__"``:`   `    ``N ``=` `4` `    ``# calling the function` `    ``print``(count(N))`

## C#

 `// C# program to Count of numbers of length` `// N having prime numbers at odd indices and ` `// odd numbers at even indices` `using` `System;` `using` `System.Collections.Generic;`   `class` `GFG{`   `// function to find total number of ways` `static` `int` `find_Numb_ways(``int` `n)` `{` `    ``// No of odd indices in n-digit number` `    ``int` `odd_indices = n/2;` `  `  `    ``// No of even indices in n-digit number` `    ``int` `even_indices = (n / 2) + (n % 2);` `  `  `    ``//  No of ways of arranging prime number ` `    ``//  digits in odd indices` `    ``int` `arr_odd = (``int``)Math.Pow(4, odd_indices);` `  `  `    ``//   No of ways of arranging odd number` `    ``//  digits in even indices` `    ``int` `arr_even = (``int``)Math.Pow(5, even_indices);` `  `  `    ``// returning the total number of ways` `    ``return` `arr_odd * arr_even;` `}`   `// drive code` `public` `static` `void` `Main()` `{` `    ``int` `n = 4;` `    ``Console.Write(find_Numb_ways(n));` `}` `}`   `// This code is contributed by SURENDRA_GANGWAR.`

## Javascript

 ``

Output

`400`

Time Complexity: O(logn), because it is using inbuilt pow function
Auxiliary Space : O(1), (No additional space required)

My Personal Notes arrow_drop_up