Check divisibility by 7

2.3

Given a number, check if it is divisible by 7. You are not allowed to use modulo operator, floating point arithmetic is also not allowed.

A simple method is repeated subtraction. Following is another interesting method.

Divisibility by 7 can be checked by a recursive method. A number of the form 10a + b is divisible by 7 if and only if a – 2b is divisible by 7. In other words, subtract twice the last digit from the number formed by the remaining digits. Continue to do this until a small number.

Example: the number 371: 37 – (2×1) = 37 – 2 = 35; 3 – (2 × 5) = 3 – 10 = -7; thus, since -7 is divisible by 7, 371 is divisible by 7.

Following is the implementation of the above method

C/C++

// A Program to check whether a number is divisible by 7
#include <stdio.h>

int isDivisibleBy7( int num )
{
    // If number is negative, make it positive
    if( num < 0 )
        return isDivisibleBy7( -num );

    // Base cases
    if( num == 0 || num == 7 )
        return 1;
    if( num < 10 )
        return 0;

    // Recur for ( num / 10 - 2 * num % 10 ) 
    return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) );
}

// Driver program to test above function
int main()
{
    int num = 616;
    if( isDivisibleBy7(num ) )
        printf( "Divisible" );
    else
        printf( "Not Divisible" );
    return 0;
}

Java

// Java program to check whether a number is divisible by 7
import java.io.*;

class GFG 
{
    // Function to check whether a number is divisible by 7
    static boolean isDivisibleBy7(int num)
    {
        // If number is negative, make it positive
        if( num < 0 )
            return isDivisibleBy7( -num );
 
        // Base cases
        if( num == 0 || num == 7 )
            return true;
        if( num < 10 )
            return false;
 
        // Recur for ( num / 10 - 2 * num % 10 ) 
        return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) );
    }
    
    // Driver program
    public static void main (String[] args) 
    {
        int num = 616;
        if(isDivisibleBy7(num))
            System.out.println("Divisible");
        else
            System.out.println("Not Divisible");
    }
}

// Contributed by Pramod Kumar

Python

# Python program to check whether a number is divisible by 7

# Function to check whether a number is divisible by 7
def isDivisibleBy7(num) :
    
    # If number is negative, make it positive
    if num < 0 :
        return isDivisibleBy7( -num )

    # Base cases
    if( num == 0 or num == 7 ) :
        return True
    
    if( num < 10 ) :
        return False
        
    # Recur for ( num / 10 - 2 * num % 10 ) 
    return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) )
    
# Driver program
num = 616
if(isDivisibleBy7(num)) :
    print "Divisible"
else :
    print "Not Divisible"

# This code is contributed by Nikita Tiwari