Open In App

Check if a large number is divisible by 4 or not

Improve
Improve
Like Article
Like
Save
Share
Report

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 .



Last Updated : 13 Sep, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads