Check if a larger number divisible by 36

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

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

  1. A number is divisible by 4 if the number formed by its last 2 digits is divisible by 4
  2. A number is divisible by 9 if the sum of the digits of the number is divisible by 9

Below is the implementation based on above idea.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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] != '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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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");
    }

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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] != '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.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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] != '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.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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] != '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.
?>

chevron_right


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 contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up

Improved By : parashar, jit_t