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

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

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 notbool 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 codeint 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 notclass 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') % 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 codest = "76952" # Function callif(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 notusing 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.



Javascript

 //Javascript program to check whether a string is divisible by 4 or not // function to check the divisibilityfunction 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 codevar str="76952"; //checking the value by passing it into the function// Function callif(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 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.