Check if a large number is divisible by 6 or not
Given a number, the task is to check if a number is divisible by 6 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 = 2112 Output: Yes Input : n = 1124 Output : No Input : n = 363588395960667043875487 Output : No
C++
#include <iostream> using namespace std; int main() { long n = 36358839596; // finding given number is divisible by 6 or not if (n % 6 == 0) cout << "Yes" ; else cout << "No" ; return 0; } // This code is contributed by lokesh |
Java
// Java code for the above approach // To check whether the given number is divisible by 6 or not import java.io.*; class GFG { public static void main (String[] args) { long n = 36358839596L; // finding given number is divisible by 6 or not if (n % 6 == 0 ) System.out.print( "Yes" ); else System.out.print( "No" ); } } // This code is contributed by lokesh |
Python3
# Python code # To check whether the given number is divisible by 6 or not #input n = 363588395960667043875487 # the above input can also be given as n=input() -> taking input from user # finding given number is divisible by 6 or not if int (n) % 6 = = 0 : print ( "Yes" ) else : print ( "No" ) |
C#
using System; public class GFG { static public void Main() { // C# code for the above approach // To check whether the given number is divisible by 6 or not //input long n = 36358839596; // finding given number is divisible by 6 or not if (n % 6 == 0) Console.Write( "Yes" ); else Console.Write( "No" ); } } // This code is contributed by ksrikanth0498 |
Javascript
<script> // JavaScript code for the above approach // To check whether the given number is divisible by 6 or not //input var n = 363588395960667043875487 // finding given number is divisible by 6 or not if (n % 6 == 0) document.write( "Yes" ) else document.write( "No" ) // This code is contributed by Potta Lokesh </script> |
PHP
<?php // PHP program to check // if a large number is // divisible by 6. // Driver Code // input number $num = 363588395960667043875487; // finding given number is divisible by 6 or not if ( $num %6 == 0) echo "Yes" ; else echo "No" ; // This code is contributed by satwik4409. ?> |
No
Time complexity: O(1) as it is performing constant operations
Auxiliary Space: O(1) as it is using constant space for variables
Since input number may be very large, we cannot use n % 6 to check if a number is divisible by 6 or not, especially in languages like C/C++. The idea is based on following fact.
A number is divisible by 6 it's divisible by 2 and 3. a) A number is divisible by 2 if its last digit is divisible by 2. b) A number is divisible by 3 if sum of digits is divisible by 3.
Below is the implementation based on above steps.
C++
// C++ program to find if a number is divisible by // 6 or not #include<bits/stdc++.h> using namespace std; // Function to find that number divisible by 6 or not bool check(string str) { int n = str.length(); // Return false if number is not divisible by 2. if ((str[n-1]- '0' )%2 != 0) return false ; // If we reach here, number is divisible by 2. // Now check for 3. // Compute sum of digits int digitSum = 0; for ( int i=0; i<n; i++) digitSum += (str[i]- '0' ); // Check if sum of digits is divisible by 3 return (digitSum % 3 == 0); } // Driver code int main() { string str = "1332" ; check(str)? cout << "Yes" : cout << "No " ; return 0; } |
Java
// Java program to find if a number is // divisible by 6 or not import java.io.*; class IsDivisible { // Function to find that number divisible by 6 or not static boolean check(String str) { int n = str.length(); // Return false if number is not divisible by 2. if ((str.charAt(n- 1 ) - '0' )% 2 != 0 ) return false ; // If we reach here, number is divisible by 2. // Now check for 3. // Compute sum of digits int digitSum = 0 ; for ( int i= 0 ; i<n; i++) digitSum += (str.charAt(i)- '0' ); // Check if sum of digits is divisible by 3 return (digitSum % 3 == 0 ); } // main function public static void main (String[] args) { String str = "1332" ; if (check(str)) System.out.println( "Yes" ); else System.out.println( "No" ); } } |
Python3
# Python 3 program to find # if a number is divisible # by 6 or not # Function to find that number # is divisible by 6 or not def check(st) : n = len (st) # Return false if number # is not divisible by 2. if ((( int )(st[n - 1 ]) % 2 ) ! = 0 ) : return False # If we reach here, number # is divisible by 2. Now # check for 3. # Compute sum of digits digitSum = 0 for i in range ( 0 , n) : digitSum = digitSum + ( int )(st[i]) # Check if sum of digits # is divisible by 3 return (digitSum % 3 = = 0 ) # Driver code st = "1332" if (check(st)) : print ( "Yes" ) else : print ( "No " ) # |
C#
// C# program to find if a number is // divisible by 6 or not using System; class GFG { // Function to find that number // divisible by 6 or not static bool check(String str) { int n = str.Length; // Return false if number is // not divisible by 2. if ((str[n-1] - '0' ) % 2 != 0) return false ; // If we reach here, number is // divisible by 2. // Now check for 3. // Compute sum of digits int digitSum = 0; for ( int i = 0; i < n; i++) digitSum += (str[i] - '0' ); // Check if sum of digits is // divisible by 3 return (digitSum % 3 == 0); } // main function public static void Main () { String str = "1332" ; if (check(str)) Console.Write( "Yes" ); else Console.Write( "No" ); } } // This code is contributed by parashar. |
PHP
<?php // PHP program to find if a // number is divisible by // 6 or not // Function to find that number // divisible by 6 or not function check( $str ) { $n = strlen ( $str ); // Return false if number is // not divisible by 2. if (( $str [ $n - 1] - '0' ) % 2 != 0) return false; // If we reach here, number // is divisible by 2. // Now check for 3. // Compute sum of digits $digitSum = 0; for ( $i = 0; $i < $n ; $i ++) $digitSum += ( $str [ $i ] - '0' ); // Check if sum of digits // is divisible by 3 return ( $digitSum % 3 == 0); } // Driver code $str = "1332" ; if (check( $str )) echo "Yes" ; else echo " No " ; return 0; // This code is contributed by nitin mittal. ?> |
Javascript
<script> // JavaScript program for the above approach // Function to find that number // divisible by 6 or not function check(str) { let n = str.length; // Return false if number is // not divisible by 2. if ((str[n-1] - '0' ) % 2 != 0) return false ; // If we reach here, number is // divisible by 2. // Now check for 3. // Compute sum of digits let digitSum = 0; for (let i = 0; i < n; i++) digitSum += (str[i] - '0' ); // Check if sum of digits is // divisible by 3 return (digitSum % 3 == 0); } // Driver Code let str = "1332" ; if (check(str)) document.write( "Yes" ); else document.write( "No" ); // This code is contributed by splevel62. </script> |
Yes
Time Complexity: O(logN) where N is the given number
Auxiliary Space: O(1) since no extra space is being used
This article is contributed by DANISH_RAZA .
Approach#3: using the fact that it is divisible by 3 and 2 consecutive even numbers
We can check if a number is divisible by 6 by checking if it is divisible by 3 and any 2 consecutive even numbers (i.e., 2 and 4 or 4 and 6, etc.). We can use the modulo operation to find the remainder of the number when divided by 3 and check if it is divisible by any 2 consecutive even numbers.
Algorithm
1. Check if the remainder of the number when divided by 3 is 0.
2. Check if the last digit of the number is even.
3. If the last digit of the number is even, check if the second-last digit of the number is odd.
4. If the second-last digit of the number is odd, print “Yes”, otherwise print “No”.
C++
// C++ program for the above approach #include <iostream> using namespace std; // Function to check divisibility by 6 void check_divisibility_by_6( int n) { if (n % 3 == 0 && n % 10 % 2 == 0 && (n / 10) % 10 % 2 != 0) { cout << "Yes" << endl; } else { cout << "No" << endl; } } // Driver Code int main() { int n1 = 2112; check_divisibility_by_6(n1); int n2 = 1124; check_divisibility_by_6(n2); return 0; } |
Java
public class Main { // Function to check divisibility by 6 public static void check_divisibility_by_6( int n) { if (n % 3 == 0 && n % 10 % 2 == 0 && (n / 10 ) % 10 % 2 != 0 ) { System.out.println( "Yes" ); } else { System.out.println( "No" ); } } // Driver Code public static void main(String[] args) { int n1 = 2112 ; check_divisibility_by_6(n1); int n2 = 1124 ; check_divisibility_by_6(n2); } } |
Python3
def check_divisibility_by_6(n): if n % 3 = = 0 and n % 10 % 2 = = 0 and (n / / 10 ) % 10 % 2 ! = 0 : print ( "Yes" ) else : print ( "No" ) n = 2112 check_divisibility_by_6(n) n = 1124 check_divisibility_by_6(n) |
Javascript
function check_divisibility_by_6(n) { if (n % 3 === 0 && n % 10 % 2 === 0 && Math.floor(n / 10) % 10 % 2 !== 0) { console.log( "Yes" ); } else { console.log( "No" ); } } let n = 2112; check_divisibility_by_6(n); n = 1124; check_divisibility_by_6(n); |
C#
using System; class Program { // Function to check divisibility by 6 static void CheckDivisibilityBy6( int n) { if (n % 3 == 0 && n % 10 % 2 == 0 && (n / 10) % 10 % 2 != 0) { Console.WriteLine( "Yes" ); } else { Console.WriteLine( "No" ); } } // Driver Code static void Main( string [] args) { int n1 = 2112; CheckDivisibilityBy6(n1); int n2 = 1124; CheckDivisibilityBy6(n2); Console.ReadKey(); } } |
Yes No
Time Complexity: O(log n) where n is the value of the number.
Auxiliary Space: O(1).
Contact Us