Dada una serie de números enteros del 1 al infinito y un número N .
La tarea es eliminar cada (i + 1)-ésimo elemento de la serie restante en cada i-ésima iteración y encontrar si el número N dado existe en la serie o no.
Número de Flavio :
Los números en el Tamiz Flavius se llaman Números Flavius.
El tamiz Flavius comienza con los números naturales y continúa repitiendo el siguiente paso:
En el k-ésimo paso de tamizado, elimine cada (k+1)-st término de la secuencia restante de N números naturales después del (k-1)-st tamizado paso.
Por ejemplo: 1, 3, 7, 13, 19, 27, 39, 49,
Ejemplos:
Entrada: N = 17
Salida: N0
Serie después de i-ésimas iteraciones
1). 1, 3, 5, 7, 9, 11, 13, 15, 17, …
2). 1, 3, 7, 9, 13, 15, 19, 21, 25, …
3). 1, 3, 7, 13, 15, 19, 25, …
4). 1, 3, 7, 13, 19, 27, ….
Entrada: N = 3
Salida: Sí
Acercarse:
- Si el número dado es par, la respuesta es simplemente «No». Porque en la primera iteración se ha eliminado todo el número par de la serie.
- Repita este proceso.
- De lo contrario, elimine la cantidad de elementos eliminados en la primera iteración, es decir, (1/2) el número y luego verifique
si es divisible por 3, la respuesta debe ser «No», de lo contrario, reste los números anteriores que se
eliminaron, es decir (1/3 ) rd el número y así sucesivamente. - Repita el paso anterior para todas las iteraciones hasta que obtengamos una respuesta.
- De lo contrario, elimine la cantidad de elementos eliminados en la primera iteración, es decir, (1/2) el número y luego verifique
A continuación se muestra la implementación del enfoque:
C++
// C++ implementation #include <bits/stdc++.h> using namespace std; // Return the number is // Flavious Number or not bool Survives(int n) { int i; // index i starts from 2 because // at 1st iteration every 2nd // element was remove and keep // going for k-th iteration for (int i = 2;; i++) { if (i > n) return true; if (n % i == 0) return false; // removing the elements which are // already removed at kth iteration n -= n / i; } } // Driver Code int main() { int n = 17; if (Survives(n)) cout << "Yes" << endl; else cout << "No" << endl; return 0; }
Java
// Java implementation of the above approach class GFG { // Return the number is // Flavious Number or not static boolean Survives(int n) { // index i starts from 2 because // at 1st iteration every 2nd // element was remove and keep // going for k-th iteration for (int i = 2;; i++) { if (i > n) return true; if (n % i == 0) return false; // removing the elements which are // already removed at kth iteration n -= n / i; } } // Driver Code public static void main(String[] args) { int n = 17; if (Survives(n)) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by 29AjayKumar
Python3
# Python3 implementation of # the above approach # Return the number is # Flavious Number or not def Survives(n) : # index i starts from 2 because # at 1st iteration every 2nd # element was remove and keep # going for k-th iteration i = 2 while(True) : if (i > n) : return True; if (n % i == 0) : return False; # removing the elements which are # already removed at kth iteration n -= n // i; i += 1 # Driver Code if __name__ == "__main__" : n = 17; if (Survives(n)) : print("Yes"); else : print("No"); # This code is contributed by AnkitRai01
C#
// C# implementation of the above approach using System; class GFG { // Return the number is // Flavious Number or not static bool Survives(int n) { // index i starts from 2 because // at 1st iteration every 2nd // element was remove and keep // going for k-th iteration for (int i = 2;; i++) { if (i > n) return true; if (n % i == 0) return false; // removing the elements which are // already removed at kth iteration n -= n / i; } } // Driver Code public static void Main(String[] args) { int n = 17; if (Survives(n)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // Javascript implementation // Return the number is // Flavious Number or not function Survives(n) { let i; // index i starts from 2 because // at 1st iteration every 2nd // element was remove and keep // going for k-th iteration for (let i = 2;; i++) { if (i > n) return true; if (n % i == 0) return false; // removing the elements which are // already removed at kth iteration n -= parseInt(n / i); } } // Driver Code let n = 17; if (Survives(n)) document.write("Yes<br>"); else document.write("No<br>"); </script>
No
Publicación traducida automáticamente
Artículo escrito por Shivamj075 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA