## Related Articles

• Write an Interview Experience
• Mathematical Algorithms

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

• Difficulty Level : Easy
• Last Updated : 08 Feb, 2023

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```
Recommended Practice

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] - ``'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``import` `java.util.*;``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] - ``'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] -``'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`

Time Complexity: O(1), as we are not using any loops for traversing.

Auxiliary Space: O(1), as we are not using any extra space.

Method 2: Checking given number is divisible by 4 or not by using the modulo division operator “%”.

## C++

 `#include ``using` `namespace` `std;``int` `main()``{``    ``// input``    ``long` `long` `int` `n = 1234567589333862;``     ` `    ``// finding given number is divisible by 4 or not``    ``if` `(n % 4 == 0)``    ``{``        ``cout << ``"Yes"``;``    ``}``    ``else``    ``{``        ``cout << ``"No"``;``    ``}``   ` `    ``return` `0;``}` `// This code is contributed by satwik4409.`

## Java

 `/*package whatever //do not write package name here */``import` `java.io.*;` `class` `GFG {``    ``public` `static` `void` `main (String[] args) {``      ` `      ``// input``        ``long` `n=123456758933l;``         ` `        ``// finding given number is divisible by 4 or not``        ``if` `(n % ``4` `== ``0``)``        ``{``            ``System.out.println(``"Yes"``);``        ``}``        ``else``        ``{``            ``System.out.println(``"No"``);``        ``} ``      ` `       ` `    ``}``}` `// This code is contributed by laxmigangarajula03`

## Python3

 `# Python code``# To check whether the given number is divisible by 4 or not` `#input``n``=``1234567589333862``# the above input can also be given as n=input() -> taking input from user``# finding given number is divisible by 4 or not``if` `int``(n)``%``4``=``=``0``:``  ``print``(``"Yes"``)``else``:``  ``print``(``"No"``)` `  ``# this code is contributed by gangarajula laxmi`

## C#

 `using` `System;``public` `class` `GFG{` `    ``static` `public` `void` `Main (){` `       ``// input``        ``long` `n=1234567589333862;``         ` `        ``// finding given number is divisible by 4 or not``        ``if` `(n % 4 == 0)``        ``{``            ``Console.Write(``"Yes"``);``        ``}``        ``else``        ``{``            ``Console.Write(``"No"``);``        ``} ``      ` `    ``}``}` `// This code is contributed by laxmigangarajula03`

## PHP

 ``

## Javascript

 ``

Output

`No`

Time Complexity: O(1), as we are not using any loops for traversing.
Auxiliary Space: O(1), as we are not using any extra space.

Method 3: Use of inbuilt function Atoi() in C++.
The atoi() function in C++ takes a string (which represents an integer) as an argument and returns its value of type int. So basically the function is used to convert a string argument to an integer.

Syntax:

`int atoi(const char str)`

Parameters: The function accepts one parameter str which refers to the string argument that is needed to be converted into its integer equivalent.

Return Value: If str is a valid input, then the function returns the equivalent integer number for the passed string number. If no valid conversion takes place, then the function returns zero.

Implementation

## C++

 `// C++ program to find if a number is divisible by``// 4 or not``#include ``using` `namespace` `std;` `// Driver code``int` `main()``{``    ``char` `str[] = ``"76952"``;``    ``int` `n = (``sizeof``(str) / ``sizeof``(``char``))-1;``    ``char` `ch[2];``    ``if` `(n >= 2) {``        ``ch[0] = str[n - 2];``        ``ch[1] = str[n - 1];``    ``}``    ``else` `if` `(n == 1) {``        ``ch[0] = 0;``        ``ch[1] = str[0];``    ``}` `    ``int` `x;``    ``x = ``atoi``(ch);``    ``if` `(!(x % 4)) {``        ``cout << ``"YES"``;``    ``}``    ``else` `{``        ``cout << ``"NO"``;``    ``}` `    ``return` `0;``}` `// This code is contributed by Aarti_Rathi`

## Java

 `// Java program to find if a number is divisible by``// 4 or not``import` `java.util.*;` `class` `GFG``{``  ` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``String str = ``"76952"``;``        ``int` `n = str.length();` `        ``char``[] ch = ``new` `char``[``2``];``        ``if` `(n >= ``2``) {``            ``ch[``0``] = str.charAt(n - ``2``);``            ``ch[``1``] = str.charAt(n - ``1``);``        ``}``        ``else` `if` `(n == ``1``) {``            ``ch[``0``] = ``'0'``;``            ``ch[``1``] = str.charAt(``0``);``        ``}` `        ``int` `x = (ch[``0``] - ``'0'``) * ``10` `+ (ch[``1``] - ``'0'``);``        ``if` `((x % ``4``) == ``0``) {``            ``System.out.println(``"YES"``);``        ``}``        ``else` `{``            ``System.out.println(``"NO"``);``        ``}``    ``}``}` `// This code is contributed by phasing17`

## Python3

 `# Python3 program to find if a number is divisible by``# 4 or not` `# Driver code``str` `=` `"76952"``;``n ``=` `len``(``str``);``ch ``=` `["``", "``"]` `if` `(n >``=` `2``):``    ``ch[``0``] ``=` `str``[n ``-` `2``]``    ``ch[``1``] ``=` `str``[n ``-` `1``]` `elif` `(n ``=``=` `1``):``    ``ch[``0``] ``=` `'0'``;``    ``ch[``1``] ``=` `str``[``0``];` `x ``=` `int``("".join(ch));``if` `(x ``%` `4` `=``=` `0``):``    ``print``(``"YES"``);` `else``:``    ``print``(``"NO"``);`  `# This code is contributed by phasing17`

## C#

 `// C# program to find if a number is divisible by``// 4 or not``using` `System;` `class` `GFG {``  ``// Driver code``  ``public` `static` `void` `Main(``string``[] args)``  ``{``    ``string` `str = ``"76952"``;``    ``int` `n = str.Length;``    ``char``[] ch = ``new` `char``[2];``    ``if` `(n >= 2) {``      ``ch[0] = str[n - 2];``      ``ch[1] = str[n - 1];``    ``}``    ``else` `if` `(n == 1) {``      ``ch[0] = ``'0'``;``      ``ch[1] = str[0];``    ``}` `    ``int` `x = (ch[0] - ``'0'``) * 10 + (ch[1] - ``'0'``);``    ``if` `((x % 4) == 0) {``      ``Console.WriteLine(``"YES"``);``    ``}``    ``else` `{``      ``Console.WriteLine(``"NO"``);``    ``}``  ``}``}` `// This code is contributed by phasing17`

## Javascript

 `// JavaScript program to find if a number is divisible by``// 4 or not` `// Driver code``let str = ``"76952"``;``let n = str.length;``let ch = ``new` `Array(2);` `if` `(n >= 2) {``    ``ch[0] = str.charAt(n - 2);``    ``ch[1] = str.charAt(n - 1);``}` `else` `if` `(n == 1) {``    ``ch[0] = ``'0'``;``    ``ch[1] = str.charAt(0);``}` `let x;``x = parseInt(ch.join(``""``));``if` `(x % 4 == 0) {``    ``console.log(``"YES"``);``}``else` `{``    ``console.log(``"NO"``);``}` `// This code is contributed by phasing17`

Output

`YES`

Time Complexity: O(1), as we are not using any loops for traversing.
Auxiliary Space: O(1), as we are not using any extra space.

Method 4: (Using substring function)

• Use substring function to get the last two characters of the string.
• Convert the string to integer
• Check if it is divisible by 4 or not, using (number%4 == 0).

This approach is contributed by Abhijeet Kumar.

Below is the implementation of the above approach:

## 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)``{``    ``// Get the length of the string``    ``int` `n = str.length();` `    ``// Empty string``    ``if` `(n == 0)``        ``return` `false``;``    ``// stoi(string_variable) is used in C++``    ``// to convert string to integer` `    ``// If there is single digit``    ``if` `(n == 1)``        ``return` `((stoi(str)) % 4 == 0);` `    ``// getting last two characters using substring``    ``str = str.substr(n - 2, 2);``    ``// If number formed by last two digits is``    ``// divisible by 4.``    ``return` `((stoi(str)) % 4 == 0);``}` `// Driver code``int` `main()``{``    ``string str = ``"76952"``;` `    ``// Function call``    ``check(str) ? cout << ``"Yes"` `: cout << ``"No "``;``    ``return` `0;``}` `// This code is contributed by Abhijeet Kumar(abhijeet19403)`

## Java

 `// Java program to find if a number is``// divisible by 4 or not``import` `java.util.*;``class` `IsDivisible {``    ``// Function to find that number``    ``// is divisible by 4 or not``    ``static` `boolean` `check(String str)``    ``{``        ``// Get the length of the string``        ``int` `n = str.length();` `        ``// Empty string``        ``if` `(n == ``0``)``            ``return` `false``;``        ``// Integer.parseInt(string_variable) is used in Java``        ``// to convert string to integer` `        ``// If there is single digit``        ``if` `(n == ``1``)``            ``return` `((Integer.parseInt(str)) % ``4` `== ``0``);` `        ``// getting last two characters using substring``        ``str = str.substring(n - ``2``);``        ``// If number formed by last two digits is``        ``// divisible by 4.``        ``return` `((Integer.parseInt(str)) % ``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"``);``    ``}``}``// This code is contributed by Abhijeet Kumar(abhijeet19403)`

## 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` `    ``# int(string_variable) is used in Python3``    ``# to convert string to integer` `    ``# If there is single``    ``# digit``    ``if` `(n ``=``=` `1``):``        ``return` `(``int``(st) ``%` `4` `=``=` `0``)` `    ``# slicing of strings is used in Python to function as substring``    ``st ``=` `st[n``-``2``:]``    ``# If number formed by``    ``# last two digits is``    ``# divisible by 4.``    ``return` `(``int``(st) ``%` `4` `=``=` `0``)`  `# Driver code``st ``=` `"76952"` `# Function call``if``(check(st)):``    ``print``(``"Yes"``)``else``:``    ``print``(``"No "``)` `# This code is contributed by Abhijeet Kumar(abhijeet19403)`

## 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``;``      ` `        ``// int.Parse(string_variable) is used in C#``        ``// to convert string to integer``      ` `        ``// If there is single digit``        ``if` `(n == 1)``            ``return` `(``int``.Parse(str) % 4 == 0);``        ` `          ``// getting last two characters using substring``          ``str = str.Substring(n-2);``        ``// If number formed by last two``        ``// digits is divisible by 4.``        ``return` `(``int``.Parse(str) % 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 Abhijeet Kumar(abhijeet19403)`

## 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``;``      ``}``      ` `       ``// parseInt(string_variable) is used in Javascript``      ``// to convert string to integer``      ``if``( n == 1)``      ``{``           ``return` `(parseInt(str) % 4 == 0);``      ``}``      ` `      ``// getting last two characters using substring``      ``str = str.substring(n-2);``      ` `      ``// If number formed by last two digits is``      ``// divisible by 4.``      ``return` `(parseInt(str) % 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"``);``}``// This code is contributed by Abhijeet Kumar(abhijeet19403)`

Output

`Yes`

Time Complexity: (1), substring function takes O(n) time, where n is the length of the substring and as here n is equal to 2 thus the time complexity is constant.
Auxiliary Space: O(1), As constant extra space is used.

This article is contributed by Aarti_Rathi and DANISH_RAZA . If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.