Позиция n среди чисел, состоящих из 2, 3, 5 и 7
Рассмотрим серию чисел, состоящую только из цифр 2, 3, 5, 7 (простых чисел). Первые несколько чисел в ряду - это 2, 3, 5, 7, 22, 23, 25, 27, 32, 33, 35, 37, 52, 53, 55, 57 и т.д. , Только 5, 7 цифр, нам нужно найти позицию этого числа в этой серии.
Примеры:
Ввод: 22 Выход: 5 22 - это 5-е число в серии 2, 3, 5, 7, 22, ... Ввод: 777 Выход: 84
Это обратная сторона следующей статьи:
Нахождение n-го числа, состоящего только из простых цифр (2, 3, 5 и 7)
"" / | | 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 <algorithm> #include <iostream> using namespace std; int findpos(string n) { int pos = 0; for ( int i = 0; n[i] != " " ; 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
<?php // PHP Program position of n among // the numbers made of 2, 3, 5 & 7 function findpos( $n ) { $pos = 0; for ( $i = 0; isset( $n [ $i ]) != NULL; $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 $n = "777" ; echo findpos( $n ); // This code is contributed by nitin mittal. ?> |
Javascript
<script> // Javascript Program position of n among // the numbers made of 2, 3, 5 & 7 function findpos(n) { var pos = 0; for (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 var n = "777" ; document.write( findpos(n)); // This code is contributed by Amit Katiyar </script> |
84
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.