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++ 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 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" );
}
} |
# 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# 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 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 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 “%”.
#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. |
/*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 |
# 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
|
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 |
<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 $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++ 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 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 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# 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 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++ 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 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) |
# 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# 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 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 .