# Check whether the given decoded string is divisible by 6

Given a string str consisting of lowercase characters, the task is to check whether the string is divisible by 6 after changing it according to the given rules:

• ‘a’ gets changed to 1.
• ‘b’ gets changed to 2.
• ‘z’ gets changed to 26.

For example, the string “abz” will get changed to 1226.

Example:

Input: str = “ab”
Output: Yes
“ab” is equivalent to 12 which is divisible by 6.

Input: str = “abc”
Output: No
123 is not divisible by 6.

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

Approach: It can be solved by using a simple math trick that a number is divisible by 6 only if the sum of all of its digits is divisible by 3 and the last digit of the number is divisible by 2. Find the sum of the digits of the formed number and store it in a variable sum. Also, find the last digit of the number and store it in lastDigit.
Now, if the sum is divisible by 3 and the lastDigit is divisible by 2 then print “Yes” else print “No”.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to return the sum ` `// of the digits of n ` `int` `sumDigits(``int` `n) ` `{ ` `    ``int` `sum = 0; ` `    ``while` `(n > 0) { ` `        ``int` `digit = n % 10; ` `        ``sum += digit; ` `        ``n /= 10; ` `    ``} ` `    ``return` `sum; ` `} ` ` `  `// Function that return true if the ` `// decoded string is divisible by 6 ` `bool` `isDivBySix(string str, ``int` `n) ` `{ ` `    ``// To store the sum of the digits ` `    ``int` `sum = 0; ` ` `  `    ``// For each character, get the ` `    ``// sum of the digits ` `    ``for` `(``int` `i = 0; i < n; i++) { ` `        ``sum += (``int``)(str[i] - ``'a'` `+ 1); ` `    ``} ` ` `  `    ``// If the sum of digits is ` `    ``// not divisible by 3 ` `    ``if` `(sum % 3 != 0) ` `        ``return` `false``; ` ` `  `    ``// Get the last digit of ` `    ``// the number formed ` `    ``int` `lastDigit = ((``int``)(str[n - 1] ` `                           ``- ``'a'` `+ 1)) ` `                    ``% 10; ` ` `  `    ``// If the last digit is ` `    ``// not divisible by 2 ` `    ``if` `(lastDigit % 2 != 0) ` `        ``return` `false``; ` `    ``return` `true``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``string str = ``"ab"``; ` `    ``int` `n = str.length(); ` ` `  `    ``if` `(isDivBySix(str, n)) ` `        ``cout << ``"Yes"``; ` `    ``else` `        ``cout << ``"No"``; ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach ` `class` `GFG ` `{ ` ` `  `// Function to return the sum ` `// of the digits of n ` `static` `int` `sumDigits(``int` `n) ` `{ ` `    ``int` `sum = ``0``; ` `    ``while` `(n > ``0``)  ` `    ``{ ` `        ``int` `digit = n % ``10``; ` `        ``sum += digit; ` `        ``n /= ``10``; ` `    ``} ` `    ``return` `sum; ` `} ` ` `  `// Function that return true if the ` `// decoded string is divisible by 6 ` `static` `boolean` `isDivBySix(String str, ``int` `n) ` `{ ` `    ``// To store the sum of the digits ` `    ``int` `sum = ``0``; ` ` `  `    ``// For each character, get the ` `    ``// sum of the digits ` `    ``for` `(``int` `i = ``0``; i < n; i++)  ` `    ``{ ` `        ``sum += (``int``)(str.charAt(i) - ``'a'` `+ ``1``); ` `    ``} ` ` `  `    ``// If the sum of digits is ` `    ``// not divisible by 3 ` `    ``if` `(sum % ``3` `!= ``0``) ` `        ``return` `false``; ` ` `  `    ``// Get the last digit of ` `    ``// the number formed ` `    ``int` `lastDigit = ((``int``)(str.charAt(n - ``1``) -  ` `                                    ``'a'` `+ ``1``)) % ``10``; ` ` `  `    ``// If the last digit is ` `    ``// not divisible by 2 ` `    ``if` `(lastDigit % ``2` `!= ``0``) ` `        ``return` `false``; ` `    ``return` `true``; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String []args) ` `{ ` `    ``String str = ``"ab"``; ` `    ``int` `n = str.length(); ` ` `  `    ``if` `(isDivBySix(str, n)) ` `        ``System.out.println(``"Yes"``); ` `    ``else` `        ``System.out.println(``"No"``); ` `} ` `} ` ` `  `// This code is contributed by Rajput-Ji `

## Python3

 `# Python3 implementation of the approach  ` ` `  `# Function to return the sum  ` `# of the digits of n  ` `def` `sumDigits(n) :  ` ` `  `    ``sum` `=` `0``;  ` `    ``while` `(n > ``0``) : ` `        ``digit ``=` `n ``%` `10``;  ` `        ``sum` `+``=` `digit;  ` `        ``n ``/``/``=` `10``;  ` ` `  `    ``return` `sum``;  ` ` `  `# Function that return true if the  ` `# decoded string is divisible by 6  ` `def` `isDivBySix(string , n) :  ` ` `  `    ``# To store the sum of the digits  ` `    ``sum` `=` `0``;  ` ` `  `    ``# For each character, get the  ` `    ``# sum of the digits  ` `    ``for` `i ``in` `range``(n) : ` `        ``sum` `+``=` `(``ord``(string[i]) ``-`  `                ``ord``(``'a'``) ``+` `1``);  ` `     `  `    ``# If the sum of digits is  ` `    ``# not divisible by 3  ` `    ``if` `(``sum` `%` `3` `!``=` `0``) : ` `        ``return` `False``;  ` ` `  `    ``# Get the last digit of  ` `    ``# the number formed  ` `    ``lastDigit ``=` `(``ord``(string[n ``-` `1``]) ``-`  `                 ``ord``(``'a'``) ``+` `1``) ``%` `10``;  ` ` `  `    ``# If the last digit is  ` `    ``# not divisible by 2  ` `    ``if` `(lastDigit ``%` `2` `!``=` `0``) : ` `        ``return` `False``;  ` `    ``return` `True``;  ` ` `  `# Driver code  ` `if` `__name__ ``=``=` `"__main__"` `:  ` ` `  `    ``string ``=` `"ab"``;  ` `    ``n ``=` `len``(string);  ` ` `  `    ``if` `(isDivBySix(string, n)) : ` `        ``print``(``"Yes"``);  ` `    ``else` `: ` `        ``print``(``"No"``);  ` ` `  `# This code is contributed by AnkitRai01 `

## C#

 `// C# implementation of the approach ` `using` `System; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to return the sum ` `// of the digits of n ` `static` `int` `sumDigits(``int` `n) ` `{ ` `    ``int` `sum = 0; ` `    ``while` `(n > 0)  ` `    ``{ ` `        ``int` `digit = n % 10; ` `        ``sum += digit; ` `        ``n /= 10; ` `    ``} ` `    ``return` `sum; ` `} ` ` `  `// Function that return true if the ` `// decoded string is divisible by 6 ` `static` `bool` `isDivBySix(String str, ``int` `n) ` `{ ` `    ``// To store the sum of the digits ` `    ``int` `sum = 0; ` ` `  `    ``// For each character, get the ` `    ``// sum of the digits ` `    ``for` `(``int` `i = 0; i < n; i++)  ` `    ``{ ` `        ``sum += (``int``)(str[i] - ``'a'` `+ 1); ` `    ``} ` ` `  `    ``// If the sum of digits is ` `    ``// not divisible by 3 ` `    ``if` `(sum % 3 != 0) ` `        ``return` `false``; ` ` `  `    ``// Get the last digit of ` `    ``// the number formed ` `    ``int` `lastDigit = ((``int``)(str[n - 1] -  ` `                             ``'a'` `+ 1)) % 10; ` ` `  `    ``// If the last digit is ` `    ``// not divisible by 2 ` `    ``if` `(lastDigit % 2 != 0) ` `        ``return` `false``; ` `    ``return` `true``; ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main(String []args) ` `{ ` `    ``String str = ``"ab"``; ` `    ``int` `n = str.Length; ` ` `  `    ``if` `(isDivBySix(str, n)) ` `        ``Console.WriteLine(``"Yes"``); ` `    ``else` `        ``Console.WriteLine(``"No"``); ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

Output:

```Yes
```

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.