Check if a large number is divisible by 4 or not
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
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. ?> |
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" ; } ?> |
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 |
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) |
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 .
Contact Us