Related Articles

# Position of n among the numbers made of 2, 3, 5 & 7

• Difficulty Level : Medium
• Last Updated : 21 Apr, 2021

Consider a series of numbers composed of only digits 2, 3, 5, 7 (primes). First few numbers in the series are 2, 3, 5, 7, 22, 23, 25, 27, 32, 33, 35, 37, 52, 53, 55, 57 .. etc. Given a number constructed by 2, 3, 5, 7 digit only, we need to find position of this number in this series.
Examples:

```Input : 22
Output : 5
22 is 5th number in series 2, 3, 5, 7, 22, ...

Input : 777
Output : 84```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

It is reverse of the following article :
Finding n-th number made of prime digits (2, 3, 5 and 7) only

```                                                    ""
/                           |                            |                            \
1(2)                          2(3)                         3(5)                          4(7)
/    |     |   \           /   |      |  \             /     |       |    \           /     |     |     \
5(22) 6(23) 7(25) 8(27)    9(32)10(33)11(35)12(37)    13(52) 14(53) 15(55) 16(57)    17(72) 18(73) 19(75) 20(77)
/||\  /||\ /||\ /||\        /||\  /||\   /||\  /||\     /||\   /||\   /||\   /||\      /||\   /||\   /||\   /||\```

If number is 2 then it is on the position pos*2+1
If number is 3 then it is on the position pos*2+2
If number is 5 then it is on the position pos*2+3
If number is 7 then it is on the position pos*2+4
Here pos is an integer greater than or equal to 0.

## C++

 `#include ``#include ``using` `namespace` `std;` `int` `findpos(string n)``{``    ``int` `pos = 0;``    ``for` `(``int` `i = 0; n[i] != ``'\0'``; i++) {``        ``switch` `(n[i]) {` `        ``// If number is 2 then it is``        ``// on the position pos*2+1``        ``case` `'2'``:``            ``pos = pos * 4 + 1;``            ``break``;` `        ``// If number is 3 then it is``        ``// on the position pos*2+2``        ``case` `'3'``:``            ``pos = pos * 4 + 2;``            ``break``;` `        ``// If number is 5 then it is``        ``// on the position pos*2+3``        ``case` `'5'``:``            ``pos = pos * 4 + 3;``            ``break``;` `        ``// If number is 7 then it is``        ``// on the position pos*2+4``        ``case` `'7'``:``            ``pos = pos * 4 + 4;``            ``break``;``        ``}``    ``}``    ``return` `pos;``}` `// Driver code``int` `main()``{``    ``string n = ``"777"``;``    ``cout << findpos(n);``}`

## Java

 `// Java Program position of n among``// the numbers made of 2, 3, 5 & 7``class` `GFG``{``static` `int` `findpos(String n)``{``    ``int` `pos = ``0``;``    ``for` `(``int` `i = ``0``; i < n.length(); i++)``    ``{``        ``switch` `(n.charAt(i))``        ``{` `        ``// If number is 2 then it is``        ``// on the position pos*2+1``        ``case` `'2'``:``            ``pos = pos * ``4` `+ ``1``;``            ``break``;` `        ``// If number is 3 then it is``        ``// on the position pos*2+2``        ``case` `'3'``:``            ``pos = pos * ``4` `+ ``2``;``            ``break``;` `        ``// If number is 5 then it is``        ``// on the position pos*2+3``        ``case` `'5'``:``            ``pos = pos * ``4` `+ ``3``;``            ``break``;` `        ``// If number is 7 then it is``        ``// on the position pos*2+4``        ``case` `'7'``:``            ``pos = pos * ``4` `+ ``4``;``            ``break``;``        ``}``    ``}``    ``return` `pos;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``String n = ``"777"``;``    ``System.out.println( findpos(n));``}``}` `// This code is contributed``// by Arnab Kundu`

## Python 3

 `def` `findpos(n):``    ``pos ``=` `0``    ``for` `i ``in` `n:``        ` `        ``# If number is 2 then it is``        ``# on the position pos*2+1``        ``if` `i ``=``=` `'2'``:``            ``pos ``=` `pos ``*` `4` `+` `1``            ` `        ``# If number is 3 then it is``        ``# on the position pos*2+2``        ``elif` `i ``=``=` `'3'``:``            ``pos ``=` `pos ``*` `4` `+` `2``            ` `        ``# If number is 5 then it is``        ``# on the position pos*2+3``        ``elif` `i ``=``=` `'5'``:``            ``pos ``=` `pos ``*` `4` `+` `3``            ` `        ``# If number is 7 then it is``        ``# on the position pos*2+4``        ``elif` `i ``=``=` `'7'``:``            ``pos ``=` `pos ``*` `4` `+` `4``        ` `    ``return` `pos` `# Driver code``n ``=` `"777"``print` `(findpos(n))` `# This code is contributed by vishal.`

## C#

 `// C# Program position of n among``// the numbers made of 2, 3, 5 & 7``using` `System;``    ` `class` `GFG``{``    ` `static` `int` `findpos(String n)``{``    ``int` `pos = 0;``    ``for` `(``int` `i = 0; i < n.Length; i++)``    ``{``        ``switch` `(n[i])``        ``{` `        ``// If number is 2 then it is``        ``// on the position pos*2+1``        ``case` `'2'``:``            ``pos = pos * 4 + 1;``            ``break``;` `        ``// If number is 3 then it is``        ``// on the position pos*2+2``        ``case` `'3'``:``            ``pos = pos * 4 + 2;``            ``break``;` `        ``// If number is 5 then it is``        ``// on the position pos*2+3``        ``case` `'5'``:``            ``pos = pos * 4 + 3;``            ``break``;` `        ``// If number is 7 then it is``        ``// on the position pos*2+4``        ``case` `'7'``:``            ``pos = pos * 4 + 4;``            ``break``;``        ``}``    ``}``    ``return` `pos;``}` `// Driver code``public` `static` `void` `Main(String[] args)``{``    ``String n = ``"777"``;``    ``Console.WriteLine( findpos(n));``}``}` `// This code contributed by Rajput-Ji`

## PHP

 ``

## Javascript

 ``
Output:
`84`

My Personal Notes arrow_drop_up