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
#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 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 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")
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
<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 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.
?>
Output
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++ 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 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");
}
}
# 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# 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.
<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>
<?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.
?>
Output
Yes
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.