Check if a number is multiple of 5 without using / and % operators

Given a positive number n, write a function isMultipleof5(int n) that returns true if n is multiple of 5, otherwise false. You are not allowed to use % and / operators.

Method 1 (Repeatedly subtract 5 from n)
Run a loop and subtract 5 from n in the loop while n is greater than 0. After the loop terminates, check whether n is 0. If n becomes 0 then n is multiple of 5, otherwise not.

C

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<stdio.h>
  
// assumes that n is a positive integer 
bool isMultipleof5 (int n)
{
    while ( n > 0 )
        n = n - 5;
  
    if ( n == 0 )
        return true;
  
    return false;
}
  
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        printf("%d is multiple of 5\n", n);
    else
        printf("%d is not a multiple of 5\n", n);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to check if a number
// is multiple of 5 without using 
// '/' and '%' operators
class GFG 
{
      
// assumes that n is a positive integer 
static boolean isMultipleof5 (int n)
{
    while (n > 0)
        n = n - 5;
  
    if (n == 0)
        return true;
  
    return false;
}
  
// Driver Code
public static void main(String[] args)
{
    int n = 19;
    if (isMultipleof5(n) == true)
        System.out.printf("%d is multiple of 5\n", n);
    else
        System.out.printf("%d is not a multiple of 5\n", n);
}
}
  
// This code is contributed by Smitha DInesh Semwal

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to check
# if a number is multiple of
# 5 without using / and %
  
# Assumes that n is a positive integer 
def isMultipleof5(n):
      
    while ( n > 0 ):
        n = n - 5
  
    if ( n == 0 ):
        return 1
  
    return 0
      
# Driver Code
i = 19
if ( isMultipleof5(i) == 1 ):
    print (i, "is multiple of 5")
else:
    print (i, "is not a multiple of 5")
  
# This code is contributed
# by Sumit Sudhakar

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to check if a number
// is multiple of 5 without using /
// and % operators
using System;
  
class GFG 
{
      
// assumes that n is a positive integer
static bool isMultipleof5 (int n)
{
    while (n > 0)
        n = n - 5;
  
    if (n == 0)
        return true;
  
    return false;
}
  
// Driver Code
public static void Main()
{
    int n = 19;
    if (isMultipleof5(n) == true)
        Console.Write(n + " is multiple of 5\n");
    else
        Console.Write(n + " is not a multiple of 5\n");
}
}
  
// This code is contributed by nitin mittal.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// assumes that n is a positive integer 
function isMultipleof5 ($n)
{
    while ( $n > 0 )
        $n = $n - 5;
  
    if ( $n == 0 )
        return true;
  
    return false;
}
  
// Driver Code
    $n = 19;
    if ( isMultipleof5($n) == true )
        echo("$n is multiple of 5");
    else
        echo("$n is not a multiple of 5" );
          
// This code is contributed by nitin mittal.
?>

chevron_right



Output :



19 is not a multiple of 5

Method 2 (Convert to string and check the last character)
Convert n to a string and check the last character of the string. If the last character is ‘5’ or ‘0’ then n is multiple of 5, otherwise not.

C

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
  
// Assuming that integre takes 4 bytes, there 
// can be maximum 10 digits in a integer
# define MAX 11
  
bool isMultipleof5(int n)
{
    char str[MAX];
    int len = strlen(str);
      
    // Check the last character of string
    if ( str[len - 1] == '5' || 
         str[len - 1] == '0' )
           
        return true;
      
    return false;
}
  
// Driver Code
int main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        printf("%d is multiple of 5\n", n);
    else
        printf("%d is not a multiple of 5\n", n);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Assuming that integer 
// takes 4 bytes, there 
// can be maximum 10
// digits in a integer
class GFG
{
static int MAX = 11;
  
static boolean isMultipleof5(int n)
{
    char str[] = new char[MAX];
    int len = str.length;
      
    // Check the last 
    // character of string
    if (str[len - 1] == '5' || 
        str[len - 1] == '0' )
          
        return true;
      
    return false;
}
  
// Driver Code
public static void main(String[] args)
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        System.out.println(n +" is multiple " +
                                       "of 5");
    else
        System.out.println(n +" is not a " +
                           "multiple of 5");
}
}
  
// This code is contributed by mits

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Assuming that integer
# takes 4 bytes, there 
# can be maximum 10 
# digits in a integer
MAX = 11;
  
def isMultipleof5(n):
    s = str(n);
    l = len(s);
      
    # Check the last 
    # character of string
    if (s[l - 1] == '5' or
        s[l - 1] == '0'):
        return True;
    return False;
  
# Driver Code
n = 19;
if (isMultipleof5(n) == True ):
    print(n, "is multiple of 5");
else:
    print(n, "is not a multiple of 5");
  
# This code is contributed by mits

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

using System;
  
// Assuming that integer
// takes 4 bytes, there 
// can be maximum 10 
// digits in a integer
class GFG
{
static int MAX = 11;
  
static bool isMultipleof5(int n)
{
    char[] str = new char[MAX];
    int len = str.Length;
      
    // Check the last
    // character of string
    if (str[len - 1] == '5' || 
        str[len - 1] == '0' )
          
        return true;
      
    return false;
}
  
// Driver Code
static void Main()
{
    int n = 19;
    if ( isMultipleof5(n) == true )
        Console.WriteLine("{0} is "
                          "multiple of 5", n);
    else
        Console.WriteLine("{0} is not a " +
                          "multiple of 5", n);
}
}
  
// This code is contributed by mits

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// Assuming that integre 
// takes 4 bytes, there 
// can be maximum 10 
// digits in a integer
$MAX = 11;
  
function isMultipleof5($n)
{
    global $MAX;
    $str = (string)$n;
    $len = strlen($str);
      
    // Check the last 
    // character of string
    if ($str[$len - 1] == '5' || 
        $str[$len - 1] == '0')
          
        return true;
      
    return false;
}
  
// Driver Code
$n = 19;
if (isMultipleof5($n) == true )
    echo "$n is multiple of 5";
else
    echo "$n is not a multiple of 5";
  
// This code is contributed by mits
?>

chevron_right



Output:

19 is not a multiple of 5

Thanks to Baban_Rathore for suggesting this method.

Method 3 (Set last digit as 0 and use floating point trick)
A number n can be a mulpile of 5 in two cases. When last digit of n is 5 or 10. If last bit in binary equivalent of n is set (which can be the case when last digit is 5) then we multiply by 2 using n<<=1 to make sure that if the number is multpile of 5 then we have the last digit as 0. Once we do that, our work is to just check if the last digit is 0 or not, which we can do using float and integer comparison trick.

C

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<stdio.h>
  
bool isMultipleof5(int n)
{
    // If n is a multiple of 5 then we
    // make sure that last digit of n is 0 
    if ( (n & 1) == 1 )
        n <<= 1;
      
    float x = n;
    x = ( (int)(x * 0.1) ) * 10;
      
    // If last digit of n is 0 then n 
    // will be equal to (int)x 
    if ( (int)x == n )
        return true;
  
    return false;
}
  
// Driver Code
int main()
{
    int i = 19;
    if ( isMultipleof5(i) == true )
        printf("%d is multiple of 5\n", i);
    else
        printf("%d is not a multiple of 5\n", i);
  
    getchar();
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to check if
// a number is multiple of
// 5 without using / and %
class GFG
{
static boolean isMultipleof5(int n)
{
    // If n is a multiple of 5 
    // then we make sure that
    // last digit of n is 0 
    if ((n & 1) == 1)
        n <<= 1;
      
    float x = n;
    x = ((int)(x * 0.1)) * 10;
      
    // If last digit of n is 
    // 0 then n will be equal
    // to (int)x 
    if ((int)x == n)
        return true;
  
    return false;
}
  
// Driver Code
public static void main(String[] args)
{
    int i = 19;
    if (isMultipleof5(i) == true)
        System.out.println(i + "is multiple of 5");
    else
        System.out.println(i + " is not a "
                            "multiple of 5");
}
}
  
// This code is contributed 
// by mits

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to check
# if a number is multiple of
# 5 without using / and %
  
def isMultipleof5(n):
      
    # If n is a multiple of 5 then we
    # make sure that last digit of n is 0 
    if ( (n & 1) == 1 ):
        n <<= 1;
  
    x = n
    x = ( (int)(x * 0.1) ) * 10
      
    # If last digit of n is 0
    # then n will be equal to x
    if ( x == n ):
        return 1
  
    return 0
      
# Driver Code
i = 19
if ( isMultipleof5(i) == 1 ):
    print (i, "is multiple of 5")
else:
    print (i, "is not a multiple of 5")
  
# This code is contributed
# by Sumit Sudhakar

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to check if
// a number is multiple of
// 5 without using / and %
class GFG
{
static bool isMultipleof5(int n)
{
    // If n is a multiple of 5 
    // then we make sure that
    // last digit of n is 0 
    if ((n & 1) == 1)
        n <<= 1;
      
    float x = n;
    x = ((int)(x * 0.1)) * 10;
      
    // If last digit of n is 
    // 0 then n will be equal
    // to (int)x 
    if ((int)x == n)
        return true;
  
    return false;
}
  
// Driver Code
public static void Main()
{
    int i = 19;
    if (isMultipleof5(i) == true)
        System.Console.WriteLine(i + "is multiple of 5");
    else
        System.Console.WriteLine(i + " is not a "
                                   "multiple of 5");
}
}
  
// This code is contributed 
// by mits

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
function isMultipleof5($n)
{
    // If n is a multiple of 5
    // then we make sure that 
    // last digit of n is 0 
    if (($n & 1) == 1 )
        $n <<= 1;
      
    $x = $n;
    $x = ((int)($x * 0.1)) * 10;
      
    // If last digit of n 
    // is 0 then n will be 
    // equal to (int)x 
    if ( (int)($x) == $n )
        return true;
  
    return false;
}
  
// Driver Code
$i = 19;
if ( isMultipleof5($i) == true )
    echo "$i is multiple of 5\n";
else
    echo "$i is not a multiple of 5\n";
  
// This code is contributed by mits
?>

chevron_right



Output :

19 is not a multiple of 5

Thanks to darkprince for suggesting this method.

Please write comments if you find the above codes/algorithms incorrect, or find other ways to solve the same problem.



My Personal Notes arrow_drop_up



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.