Check if a large number is divisible by 6 or not (original) (raw)

Last Updated : 8 Jul, 2024

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

Python

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

PHP

`

**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.

JavaScript

PHP

n=strlen(n = strlen(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<i < i<n; $i++) digitSum+=(digitSum += (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. ?>

`

**Time Complexity: O(logN) where N is the given number
**Auxiliary Space: O(1) since no extra space is being used

Here is a bonus fact for the readers. The product of 3 consecutive numbers is always a multiple of 6. The reason is simple,

  1. Among three consecutive numbers, one of the numbers must be a multiple of 3 (Note every third number is a multiple of 3 starting from
  2. Due to the same reason as above, at least one of the three numbers must be a multiple of 2.