Related Articles

# Check if a large number is divisible by 4 or not

• Difficulty Level : Easy
• Last Updated : 19 Oct, 2020

Given a number, the task is to check if a number is divisible by 4 or not. The input number may be large and it may not be possible to store even if we use long long int.

Examples:

```Input : n = 1124
Output : Yes

Input  : n = 1234567589333862
Output : No

Input  : n = 363588395960667043875487
Output : No
```

Since input number may be very large, we cannot use n % 4 to check if a number is divisible by 4 or not, especially in languages like C/C++. The idea is based on following fact.

A number is divisible by 4 if number formed by last two digits of it is divisible by 4.

Illustration:

```For example, let us consider 76952
Number formed by last two digits = 52
Since 52 is divisible by 4, answer is YES.
```

How does this work?

```Let us consider 76952, we can write it as
76942 = 7*10000 + 6*1000 + 9*100 + 5*10 + 2

The proof is based on below observation:
Remainder of 10i divided by 4 is 0 if i greater
than or equal to two. Note than 100, 1000,
... etc lead to remainder 0 when divided by 4.

So remainder of "7*10000 + 6*1000 + 9*100 +
5*10 + 2" divided by 4 is equivalent to remainder
of following :
0 + 0 + 0 + 5*10 + 2 = 52
Therefore we can say that the whole number is
divisible by 4 if 52 is divisible by 4.
```

Below is implementation of above idea :

## C++

 `// C++ program to find if a number is divisible by``// 4 or not``#include ``using` `namespace` `std;` `// Function to find that number divisible by``// 4 or not``bool` `check(string str)``{``    ``int` `n = str.length();` `    ``// Empty string``    ``if` `(n == 0)``        ``return` `false``;` `    ``// If there is single digit``    ``if` `(n == 1)``        ``return` `((str - ``'0'``) % 4 == 0);` `    ``// If number formed by last two digits is``    ``// divisible by 4.``    ``int` `last = str[n - 1] - ``'0'``;``    ``int` `second_last = str[n - 2] - ``'0'``;``    ``return` `((second_last * 10 + last) % 4 == 0);``}` `// Driver code``int` `main()``{``    ``string str = ``"76952"``;``  ` `    ``// Function call``    ``check(str) ? cout << ``"Yes"` `: cout << ``"No "``;``    ``return` `0;``}`

## Java

 `// Java program to find if a number is``// divisible by 4 or not``class` `IsDivisible``{``    ``// Function to find that number``    ``// is divisible by 4 or not``    ``static` `boolean` `check(String str)``    ``{``        ``int` `n = str.length();` `        ``// Empty string``        ``if` `(n == ``0``)``            ``return` `false``;` `        ``// If there is single digit``        ``if` `(n == ``1``)``            ``return` `((str.charAt(``0``) - ``'0'``) % ``4` `== ``0``);` `        ``// If number formed by last two digits is``        ``// divisible by 4.``        ``int` `last = str.charAt(n - ``1``) - ``'0'``;``        ``int` `second_last = str.charAt(n - ``2``) - ``'0'``;``        ``return` `((second_last * ``10` `+ last) % ``4` `== ``0``);``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``String str = ``"76952"``;``      ` `        ``// Function call``        ``if` `(check(str))``            ``System.out.println(``"Yes"``);``        ``else``            ``System.out.println(``"No"``);``    ``}``}`

## Python3

 `# Python 3 program to find``# if a number is divisible``# by 4 or not` `# Function to find that``# number divisible by``# 4 or not`  `def` `check(st):``    ``n ``=` `len``(st)` `    ``# Empty string``    ``if` `(n ``=``=` `0``):``        ``return` `False` `    ``# If there is single``    ``# digit``    ``if` `(n ``=``=` `1``):``        ``return` `((st[``0``] ``-` `'0'``) ``%` `4` `=``=` `0``)` `    ``# If number formed by``    ``# last two digits is``    ``# divisible by 4.``    ``last ``=` `(``int``)(st[n ``-` `1``])``    ``second_last ``=` `(``int``)(st[n ``-` `2``])` `    ``return` `((second_last ``*` `10` `+` `last) ``%` `4` `=``=` `0``)`  `# Driver code``st ``=` `"76952"` `# Function call``if``(check(st)):``    ``print``(``"Yes"``)``else``:``    ``print``(``"No "``)` `# This code is contributed by Nikita tiwari`

## C#

 `// C# program to find if a number is``// divisible by 4 or not``using` `System;` `class` `GFG``{``    ``// Function to find that number``    ``// is divisible by 4 or not``    ``static` `bool` `check(String str)``    ``{``        ``int` `n = str.Length;` `        ``// Empty string``        ``if` `(n == 0)``            ``return` `false``;` `        ``// If there is single digit``        ``if` `(n == 1)``            ``return` `((str - ``'0'``) % 4 == 0);` `        ``// If number formed by last two``        ``// digits is divisible by 4.``        ``int` `last = str[n - 1] - ``'0'``;``        ``int` `second_last = str[n - 2] - ``'0'``;` `        ``return` `((second_last * 10 + last) % 4 == 0);``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``String str = ``"76952"``;` `        ``// Function call``        ``if` `(check(str))``            ``Console.Write(``"Yes"``);``        ``else``            ``Console.Write(``"No"``);``    ``}``}` `// This code is Contributed by nitin mittal.`

## PHP

 ``

## Javascript

 `//Javascript program to check whether a string is divisible by 4 or not` `// function to check the divisibility``function` `check(str)``{ ``      ``// checking the length for future reference``      ``var` `n = str.length;` `      ``// if it is empty then directly returning false``      ``if``( n == 0)``      ``{        ``           ``return` `false``;``      ``}`` ` `      ``if``( n == 1)``      ``{``           ``return` `((str -``'0'``) % 4 == 0);``      ``}``      ``var` `lastNumber = str[n-1] -``'0'``;``      ``var` `lastSecondNUmber = str[n-2] -``'0'``;``      ``return` `((lastSecondNUmber * 10  + lastNumber) % 4 == 0);   ``}` `// Driver code``var` `str=``"76952"``;` `//checking the value by passing it into the function``// Function call``if``(check(str)){``  ``console.log(``"Yes"``);``}``else``{``  ``console.log(``"No"``);``}`
Output
`Yes`

This article is contributed by DANISH_RAZA . 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.