Comprobar si un número es Flavius ​​Number

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. 
       

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>
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *