# Check if the concatenation of first N natural numbers is divisible by 3

Given an integer **N**, the task is to check if the concatenation of first **N** natural numbers is *divisible* by 3 or not. Print * Yes* if divisible and

*if not.*

**No****Examples**:

Input: N = 3Output:YesExplanation:

The concatenated number = 123

Since it is divisible by 3, the output is YesInput: N = 7Output:NoExplanation:The concatenated number = 1234567

Since it is not divisible by 3, the output is No.

**Naive Approach**:

The simplest approach is to concatenate the first** N **natural numbers and calculate the sum of digits of the resultant number and check if it is divisible by 3 or not. **Time Complexity:** O(N) **Auxiliary Space: **O(1)**Efficient Approach:**

To optimize the above approach, we can observe a pattern. The concatenation of first **N** natural numbers is not divisible by 3 for the following series *1, 4, 7, 10, 13, 16, 19*, *and so on. *The **N ^{th}**

**term**of the series is given by the formula

**3×n +1**

*Hence, if*

**.****(N – 1)**is not divisible by

**3**, then the resultant number is divisible by 3, so print

*Yes*. Otherwise, print

*No.*

Below is the implementation of the above approach:

## C++

`// C++ program for the above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function that returns True if` `// concatenation of first N natural` `// numbers is divisible by 3` `bool` `isDivisible(` `int` `N)` `{` ` ` `// Check using the formula` ` ` `return` `(N - 1) % 3 != 0;` `}` `// Driver Code` `int` `main()` `{` ` ` `// Given Number` ` ` `int` `N = 6;` ` ` ` ` `// Function Call` ` ` `if` `(isDivisible(N))` ` ` `cout << (` `"Yes"` `);` ` ` ` ` `else` ` ` `cout << (` `"No"` `);` ` ` ` ` `return` `0;` `}` `// This code is contributed by Mohit Kumar` |

## Java

`// Java program for the above approach` `class` `GFG{` ` ` `// Function that returns True if` `// concatenation of first N natural` `// numbers is divisible by 3` `static` `boolean` `isDivisible(` `int` `N)` `{` ` ` `// Check using the formula` ` ` `return` `(N - ` `1` `) % ` `3` `!= ` `0` `;` `}` ` ` ` ` `// Driver Code` `public` `static` `void` `main(String[] args)` `{` ` ` `// Given Number` ` ` `int` `N = ` `6` `;` ` ` ` ` `// Function Call` ` ` `if` `(isDivisible(N))` ` ` `System.out.println(` `"Yes"` `);` ` ` ` ` `else` ` ` `System.out.println(` `"No"` `);` `}` `}` `// This code is contributed by Ritik Bansal` |

## Python 3

`# Python program for the above approach` `# Function that returns True if` `# concatenation of first N natural` `# numbers is divisible by 3` `def` `isDivisible(N):` ` ` `# Check using the formula` ` ` `return` `(N ` `-` `1` `) ` `%` `3` `!` `=` `0` `# Driver Code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `# Given Number` ` ` `N ` `=` `6` ` ` `# Function Call` ` ` `if` `(isDivisible(N)):` ` ` `print` `(` `"Yes"` `)` ` ` `else` `:` ` ` `print` `(` `"No"` `)` |

## C#

`// C# program for the above approach` `using` `System;` `class` `GFG{` `// Function that returns True if` `// concatenation of first N natural` `// numbers is divisible by 3` `static` `bool` `isDivisible(` `int` `N)` `{` ` ` `// Check using the formula` ` ` `return` `(N – 1) % 3 != 0;` `}` `// Driver Code` `public` `static` `void` `Main()` `{` ` ` `// Given Number` ` ` `int` `N = 6;` ` ` ` ` `// Function Call` ` ` `if` `(isDivisible(N))` ` ` `Console.Write(` `"Yes"` `);` ` ` ` ` `else` ` ` `Console.Write(` `"No"` `);` `}` `}` `// This code is contributed by Code_Mech` |

## Javascript

`<script>` `// javascript program for the above approach` `// Function that returns True if` `// concatenation of first N natural` `// numbers is divisible by 3` `function` `isDivisible(N)` `{` ` ` `// Check using the formula` ` ` `return` `(N - 1) % 3 != 0;` `}` ` ` `// Driver Code` `// Given Number` `var` `N = 6;` ` ` `// Function Call` `if` `(isDivisible(N))` ` ` `document.write(` `"Yes"` `);` `else` ` ` `document.write(` `"No"` `);` `// This code is contributed by Princi Singh.` `</script>` |

**Output:**

Yes

**Time Complexity: **O(1) **Auxiliary Space: **O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**