Open In App
Related Articles

Check if a large number is divisible by 4 or not

Improve Article
Improve
Save Article
Save
Like Article
Like

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
76952 = 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 <bits/stdc++.h>
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.


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");
}


PHP




<?php
// PHP program to find if a
// number is divisible by
// 4 or not
  
// Function to find that 
// number divisible by
// 4 or not
function check($str)
{
    $n = strlen($str);
  
    // 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.
    $last = $str[$n - 1] - '0';
    $second_last = $str[$n - 2] - '0';
    return (($second_last * 10 + $last) % 4 == 0);
}
  
// Driver code
$str = "76952";
  
// Function call
$x = check($str)? "Yes" : "No";
echo($x);
  
// This code is contributed by Ajit.
?>


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 <iostream>
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


Javascript




<script>
       // JavaScript code for the above approach
       // To check whether the given number is divisible by 4 or not
 
       //input 
       var n = 1234567589333862
       // finding given number is divisible by 4 or not
       if (n % 4 == 0)
           document.write("Yes")
       else
           document.write("No")
 
   // This code is contributed by Potta Lokesh
   </script>


PHP




<?php
    $num = 1234567589333862;
    // checking if the given number is divisible by 4 or
    // not using modulo division operator if the output of
    // num%4 is equal to 0 then given number is divisible
    // by 4 otherwise not divisible by 4
    if ($num % 4 == 0) {
        echo "true";
    }
    else {
        echo "false";
    }
    
?>


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 <bits/stdc++.h>
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 <bits/stdc++.h>
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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Last Updated : 13 Sep, 2023
Like Article
Save Article
Similar Reads
Related Tutorials