Open In App

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

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```

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``import` `java.io.*;``public` `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`