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.
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
bool isMultipleof5 ( int n)
{
while ( n > 0 )
n = n - 5;
if ( n == 0 )
return true ;
return false ;
}
int main()
{
int n = 19;
if ( isMultipleof5(n) == true )
cout << n << " is multiple of 5" ;
else
cout << n << " is not a multiple of 5" ;
return 0;
}
|
C
#include<stdio.h>
bool isMultipleof5 ( int n)
{
while ( n > 0 )
n = n - 5;
if ( n == 0 )
return true ;
return false ;
}
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;
}
|
Java
class GFG
{
static boolean isMultipleof5 ( int n)
{
while (n > 0 )
n = n - 5 ;
if (n == 0 )
return true ;
return false ;
}
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);
}
}
|
Python3
def isMultipleof5(n):
while ( n > 0 ):
n = n - 5
if ( n = = 0 ):
return 1
return 0
i = 19
if ( isMultipleof5(i) = = 1 ):
print (i, "is multiple of 5" )
else :
print (i, "is not a multiple of 5" )
|
C#
using System;
class GFG
{
static bool isMultipleof5 ( int n)
{
while (n > 0)
n = n - 5;
if (n == 0)
return true ;
return false ;
}
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" );
}
}
|
PHP
<?php
function isMultipleof5 ( $n )
{
while ( $n > 0 )
$n = $n - 5;
if ( $n == 0 )
return true;
return false;
}
$n = 19;
if ( isMultipleof5( $n ) == true )
echo ( "$n is multiple of 5" );
else
echo ( "$n is not a multiple of 5" );
?>
|
Javascript
<script>
function isMultipleof5 (n)
{
while (n > 0)
n = n - 5;
if (n == 0)
return true ;
return false ;
}
let n = 19;
if (isMultipleof5(n) == true )
document.write(n + " is multiple of 5\n" );
else
document.write(n + " is not a multiple of 5\n" );
</script>
|
Output
19 is not a multiple of 5
Time Complexity: O(n / 5) = O(n) since 5 is constant
Auxiliary Space: O(1)
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 a multiple of 5, otherwise not.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
#define MAX 20
bool isMultipleof5( int n)
{
string str = to_string(n);
int len = str.size();
if (str[len - 1] == '5' || str[len - 1] == '0' )
return true ;
return false ;
}
int main()
{
int n = 19;
if (isMultipleof5(n) == true )
cout << n << " is multiple of 5" << endl;
else
cout << n << " is not multiple of 5" << endl;
return 0;
}
|
C
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <stdbool.h>
# define MAX 11
bool isMultipleof5( int n)
{
char str[MAX];
sprintf (str, "%d" , n);
int len = strlen (str);
printf ( "%d\n" , len);
if ( str[len - 1] == '5' ||
str[len - 1] == '0' )
return true ;
return false ;
}
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;
}
|
Java
class GFG
{
static int MAX = 11 ;
static boolean isMultipleof5( int n)
{
String str = Integer.toString(n);
int len = str.length();
if (str.charAt(len - 1 ) == '5' ||
str.charAt(len - 1 ) == '0' )
return true ;
return false ;
}
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" );
}
}
|
Python3
MAX = 11 ;
def isMultipleof5(n):
s = str (n);
l = len (s);
if (s[l - 1 ] = = '5' or
s[l - 1 ] = = '0' ):
return True ;
return False ;
n = 19 ;
if (isMultipleof5(n) = = True ):
print (n, "is multiple of 5" );
else :
print (n, "is not a multiple of 5" );
|
C#
using System;
class GFG
{
static bool isMultipleof5( int n)
{
String str = n.ToString();
int len = str.Length;
if (str[len - 1] == '5' ||
str[len - 1] == '0' )
return true ;
return false ;
}
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);
}
}
|
PHP
<?php
$MAX = 11;
function isMultipleof5( $n )
{
global $MAX ;
$str = (string) $n ;
$len = strlen ( $str );
if ( $str [ $len - 1] == '5' ||
$str [ $len - 1] == '0' )
return true;
return false;
}
$n = 19;
if (isMultipleof5( $n ) == true )
echo "$n is multiple of 5" ;
else
echo "$n is not a multiple of 5" ;
?>
|
Javascript
<script>
MAX = 11;
function isMultipleof5(n)
{
str = Array(n).fill( '' );
var len = str.length;
if (str[len - 1] == '5' ||
str[len - 1] == '0' )
return true ;
return false ;
}
var n = 19;
if ( isMultipleof5(n) == true )
document.write(n + " is multiple " +
"of 5" );
else
document.write(n + " is not a " +
"multiple of 5" );
</script>
|
Output
19 is not multiple of 5
Time Complexity: O(N), since toString method take O(n) time
Auxiliary Space: O(len)
Thanks to Baban_Rathore for suggesting this method.
Method 3 (By converting last digit to 0 by multiplying with 2 which is only possible if last digit is 5 or 0)
- We know that a multiple of 5 can have only 5 or 0 as the last digit.
- So if we multiply the number by 2, if it is a multiple of 5 originally, the last digit will definitely become 0.
- Now all we need to check is if the last digit is 0 or not. This can be done using fractional method.
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
bool isMultipleof5( int n)
{
if ( (n & 1) == 1 )
n <<= 1;
float x = n;
x = ( ( int )(x * 0.1) ) * 10;
if ( ( int )x == n )
return true ;
return false ;
}
int main()
{
int i = 19;
if ( isMultipleof5(i) == true )
cout << i << " is multiple of 5\n" ;
else
cout << i << " is not a multiple of 5\n" ;
getchar ();
return 0;
}
|
C
#include<stdio.h>
bool isMultipleof5( int n)
{
if ( (n & 1) == 1 )
n <<= 1;
float x = n;
x = ( ( int )(x * 0.1) ) * 10;
if ( ( int )x == n )
return true ;
return false ;
}
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;
}
|
Java
class GFG
{
static boolean isMultipleof5( int n)
{
if ((n & 1 ) == 1 )
n <<= 1 ;
float x = n;
x = (( int )(x * 0.1 )) * 10 ;
if (( int )x == n)
return true ;
return false ;
}
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" );
}
}
|
Python3
def isMultipleof5(n):
if ( (n & 1 ) = = 1 ):
n << = 1 ;
x = n
x = ( ( int )(x * 0.1 ) ) * 10
if ( x = = n ):
return 1
return 0
i = 19
if ( isMultipleof5(i) = = 1 ):
print (i, "is multiple of 5" )
else :
print (i, "is not a multiple of 5" )
|
C#
class GFG
{
static bool isMultipleof5( int n)
{
if ((n & 1) == 1)
n <<= 1;
float x = n;
x = (( int )(x * 0.1)) * 10;
if (( int )x == n)
return true ;
return false ;
}
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" );
}
}
|
PHP
<?php
function isMultipleof5( $n )
{
if (( $n & 1) == 1 )
$n <<= 1;
$x = $n ;
$x = ((int)( $x * 0.1)) * 10;
if ( (int)( $x ) == $n )
return true;
return false;
}
$i = 19;
if ( isMultipleof5( $i ) == true )
echo "$i is multiple of 5\n" ;
else
echo "$i is not a multiple of 5\n" ;
?>
|
Javascript
<script>
function isMultipleof5( n)
{
if ( (n & 1) == 1 )
n <<= 1;
x = ( (int)(x * 0.1) ) * 10;
if ( (int)(x == n))
return true ;
return false ;
}
i = 19;
if ( isMultipleof5 == true )
document.write( i + " is multiple of 5\n" );
else
document.write( i + " is not a multiple of 5\n" );
</script>
|
Output
19 is not a multiple of 5
Time Complexity: O(1)
Auxiliary Space: O(1)
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.
Please Login to comment...