Check if a larger number divisible by 36

• Difficulty Level : Easy
• Last Updated : 14 Apr, 2021

Given a number, check whether a given number is divisible by 36 or not. The number may be very large and may not fit in any numeric(int, long int, float, etc.) data type.
Examples:

Input : 72
Output : Yes

Input : 244
Output : No

Input : 11322134
Output : No

Input : 92567812197966231384
Output : Yes

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

A number is divisible by 36 if the number is divisible by 4 and 9

Below is the implementation based on above idea.

C++

// C++ implementation to check divisibility by 36
#include <bits/stdc++.h>
using namespace std;

// Function to check whether a number
// is divisible by 36 or not
string divisibleBy36(string num)
{
int l = num.length();

// null number cannot
// be divisible by 36
if (l == 0)
return "No";

// single digit number other than
// 0 is not divisible by 36
if (l == 1 && num != '0')
return "No";

// number formed by the last 2 digits
int two_digit_num = (num[l-2] - '0')*10 +
(num[l-1] - '0') ;

// if number is not divisible by 4
if (two_digit_num%4 != 0)
return "No";

// number is divisible by 4 calculate
// sum of digits
int sum = 0;
for (int i=0; i<l; i++)
sum += (num[i] - '0');

// sum of digits is not divisible by 9
if (sum%9 != 0)
return "No";

// number is divisible by 4 and 9
// hence, number is divisible by 36
return "Yes";
}

// Driver program
int main()
{
string num = "92567812197966231384";
cout << divisibleBy36(num);
return 0;
}

Java

// Java program to find if a number is
// divisible by 36 or not
class IsDivisible
{
// Function to check whether a number
// is divisible by 36 or not
static boolean divisibleBy36(String num)
{
int l = num.length();

// null number cannot
// be divisible by 36
if (l == 0)
return false;

// single digit number other than
// 0 is not divisible by 36
if (l == 1 && num.charAt(0) != '0')
return false;

// number formed by the last 2 digits
int two_digit_num = (num.charAt(l-2) - '0')*10 +
(num.charAt(l-1) - '0') ;

// if number is not divisible by 4
if (two_digit_num%4 != 0)
return false;

// number is divisible by 4 calculate
// sum of digits
int sum = 0;
for (int i=0; i<l; i++)
sum += (num.charAt(i) - '0');

// sum of digits is not divisible by 9
if (sum%9 != 0)
return false;

// number is divisible by 4 and 9
// hence, number is divisible by 36
return true;
}

// main function
public static void main (String[] args)
{
String num = "92567812197966231384";
if(divisibleBy36(num))
System.out.println("Yes");
else
System.out.println("No");
}
}

Python3

# Python 3 implementation to
# check divisibility by 36

# Function to check whether a
# number is divisible by
# 36 or not
def divisibleBy36(num) :
l = len(num)

# null number cannot
# be divisible by 36
if (l == 0) :
return ("No")

# single digit number other
# than 0 is not divisible
# by 36
if (l == 1 and num != '0') :
return ("No")

# number formed by the
# last 2 digits
two_digit_num = (((int)(num[l - 2])) *
10 +(int)(num[l - 1]))

# if number is not
# divisible by 4
if (two_digit_num%4 != 0) :
return "No"

# number is divisible
# by 4 calculate sum
# of digits
sm = 0
for i in range(0,l) :
sm = sm + (int)(num[i])

# sum of digits is not
# divisible by 9
if (sm%9 != 0) :
return ("No")

# Number is divisible
# by 4 and 9 hence,
# number is divisible
# by 36
return ("Yes")

# Driver program
num = "92567812197966231384"
print(divisibleBy36(num))

# This code is contributed by Nikita Tiwari.

C#

// C# program to find if a number is
// divisible by 36 or not
using System;

class GFG {

// Function to check whether
// a number is divisible by
// 36 or not
static bool divisibleBy36(String num)
{
int l = num.Length;

// null number cannot
// be divisible by 36
if (l == 0)
return false;

// single digit number other than
// 0 is not divisible by 36
if (l == 1 && num != '0')
return false;

// number formed by the last
// 2 digits
int two_digit_num = (num[l-2] - '0') * 10
+ (num[l-1] - '0') ;

// if number is not divisible by 4
if (two_digit_num % 4 != 0)
return false;

// number is divisible by 4 calculate
// sum of digits
int sum = 0;
for (int i = 0; i < l; i++)
sum += (num[i] - '0');

// sum of digits is not divisible by 9
if (sum % 9 != 0)
return false;

// number is divisible by 4 and 9
// hence, number is divisible by 36
return true;
}

// main function
public static void Main ()
{
String num = "92567812197966231384";

if(divisibleBy36(num))
Console.Write("Yes");
else
Console.Write("No");
}
}

// This code is contributed by parashar.

PHP

<?php
// PHP implementation to
// check divisibility by 36

// Function to check whether a number
// is divisible by 36 or not
function divisibleBy36(\$num)
{
\$l = strlen(\$num);

// null number cannot
// be divisible by 36
if (\$l == 0)
return "No";

// single digit number other than
// 0 is not divisible by 36
if (\$l == 1 && \$num != '0')
return "No";

// number formed by the
// last 2 digits
\$two_digit_num = (\$num[\$l - 2] - '0') * 10 +
(\$num[\$l - 1] - '0') ;

// if number is not
// divisible by 4
if (\$two_digit_num%4 != 0)
return "No";

// number is divisible by 4
// calculate sum of digits
\$sum = 0;
for (\$i = 0; \$i < \$l; \$i++)
\$sum += (\$num[\$i] - '0');

// sum of digits is not
// divisible by 9
if (\$sum % 9 != 0)
return "No";

// number is divisible by 4 and 9
// hence, number is divisible by 36
return "Yes";
}

// Driver Code
\$num = "92567812197966231384";
echo(divisibleBy36(\$num));

// This code is contributed by Ajit.
?>

Javascript

<script>
// Javascript implementation to
// check divisibility by 36

// Function to check whether a number
// is divisible by 36 or not
function divisibleBy36(num)
{
let l = num.length;

// null number cannot
// be divisible by 36
if (l == 0)
return "No";

// single digit number other than
// 0 is not divisible by 36
if (l == 1 && num != '0')
return "No";

// number formed by the
// last 2 digits
let two_digit_num = (num[l - 2] - '0') * 10 +
(num[l - 1] - '0') ;

// if number is not
// divisible by 4
if (two_digit_num%4 != 0)
return "No";

// number is divisible by 4
// calculate sum of digits
let sum = 0;
for (let i = 0; i < l; i++)
sum += (num[i] - '0');

// sum of digits is not
// divisible by 9
if (sum % 9 != 0)
return "No";

// number is divisible by 4 and 9
// hence, number is divisible by 36
return "Yes";
}

// Driver Code
let num = "92567812197966231384";
document.write(divisibleBy36(num));

// This code is contributed by _saurabh_jaiswal.
</script>

Output:

Yes

Time Complexity: O(n)
This article is contributed by Ayush Jauhari. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.