# Check if a number is Flavius Number

Given a series of integers from 1 to infinity and a number N.

The task is to remove every (i + 1)-th element from the remaining series at every i-th iterations and find that the given number N exists in the series or not.

Flavius Number:

Numbers in the Flavius Sieve are called Flavius Numbers.

Flavius sieve starts with the natural numbers and keep repeating the below step:
At the k-th sieving step, remove every (k+1)-st term of the sequence remaining of N natural numbers after the (k-1)-st sieving step.

For Example: 1, 3, 7, 13, 19, 27, 39, 49,

Examples:

Input: N = 17
Output: N0

Series after i-th iterations
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, ….

Input: N = 3
Output: Yes

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

• If the given number is even so the answer is simply “No”. Because in the first iteration all the even number has been eliminated from the series.
• Repeat this process.
• Else remove the number of elements removed at 1st iteration i.e. (1/2)th the number and then check
if it is divisible by 3 the answered should be “No”, else subtract the numbers before it that were
removed i.e. (1/3)rd the number and so on.
• Repeat above step for all iterations until we get answer.

Below is the implementation of the approach:

## C++

 `// C++ implementation ` `#include ` `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 `

Output:

```No
```

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.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.