Multiply the given number by 2 such that it is divisible by 10
Last Updated :
08 Dec, 2022
Given a number, the only operation allowed is to multiply the number by 2. Calculate the minimum number of operations to make the number divisible by 10.
NOTE: If it is not possible to convert then print -1.
Examples:
Input: 10
Output: 0
As the given number is itself divisible by 10,
the answer is 0.
Input: 1
Output: -1
As by multiplying with 2, given no. can’t be
converted into a number that is divisible by 10,
therefore the answer is -1.
Approach: Any given number is divisible by 10 only if the last digit of the number is 0. For this problem, extract the last digit of the input number and check it in the following ways :
1) If the last digit is 0 then it is already divisible by 10 , so the minimum number of steps is 0.
2) If the last digit is 5 then multiplying it by 2 one time will make it divisible by 10, so the minimum number of steps is 1.
3) If the last digit is an even or odd number (apart from 0 and 5) then multiplying it by 2 any number of times will only produce even number so we can never make it divisible by 10. Therefore the number of steps is -1.
C++
#include <bits/stdc++.h>
using namespace std;
int multiplyBy2( int n)
{
int rem, value;
rem = n % 10;
switch (rem) {
case 0:
value = 0;
break ;
case 5:
value = 1;
break ;
default :
value = -1;
}
return value;
}
int main()
{
int n = 28;
cout << multiplyBy2(n) << endl;
n = 255;
cout << multiplyBy2(n) << endl;
return 0;
}
|
Java
import java.io.*;
class GFG
{
static int multiplyBy2( int n)
{
int rem, value;
rem = n % 10 ;
switch (rem)
{
case 0 :
value = 0 ;
break ;
case 5 :
value = 1 ;
break ;
default :
value = - 1 ;
}
return value;
}
public static void main (String[] args)
{
int n = 28 ;
System.out.println(multiplyBy2(n));
n = 255 ;
System.out.println(multiplyBy2(n));
}
}
|
Python3
def dig(argu):
switcher = {
0 : 0 ,
5 : 1 ,
}
return switcher.get(argu, - 1 )
def multiplyBy2(n):
rem = n % 10 ;
return dig(rem);
n = 28 ;
print (multiplyBy2(n));
n = 255 ;
print (multiplyBy2(n));
|
C#
using System;
class GFG
{
static int multiplyBy2( int n)
{
int rem, value;
rem = n % 10;
switch (rem)
{
case 0:
value = 0;
break ;
case 5:
value = 1;
break ;
default :
value = -1;
break ;
}
return value;
}
public static void Main ()
{
int n = 28;
Console.WriteLine(multiplyBy2(n));
n = 255;
Console.WriteLine(multiplyBy2(n));
}
}
|
PHP
<?php
function multiplyBy2( $n )
{
$rem ;
$value ;
$rem = $n % 10;
switch ( $rem ) {
case 0:
$value = 0;
break ;
case 5:
$value = 1;
break ;
default :
$value = -1;
}
return $value ;
}
$n = 28;
echo multiplyBy2( $n ), "\n" ;
$n = 255;
echo multiplyBy2( $n ), "\n" ;
?>
|
Javascript
<script>
function multiplyBy2(n)
{
var rem, value;
rem = n % 10;
switch (rem) {
case 0:
value = 0;
break ;
case 5:
value = 1;
break ;
default :
value = -1;
}
return value;
}
var n = 28;
document.write(multiplyBy2(n)+ "<br/>" );
n = 255;
document.write(multiplyBy2(n));
</script>
|
Time Complexity: O(1), because it is performing constant operations
Auxiliary Space: O(1)
Method: Using nested if-else
C++
#include <iostream>
using namespace std;
int main() {
int n = 10;
if (n % 10 == 0)
cout << 0;
else {
n = n*2;
if (n % 10 == 0)
cout<<0;
else
cout<<-1;
}
return 0;
}
|
Java
import java.io.*;
class GFG {
public static void main (String[] args) {
int n = 10 ;
if (n % 10 == 0 )
System.out.println( "0" );
else {
n = n* 2 ;
if (n % 10 == 0 )
System.out.println( "0" );
else
System.out.println( "-1" );
}
}
}
|
Python3
n = 10
if n % 10 = = 0 :
print ( 0 )
else :
n = n * 2
if n % 10 = = 0 :
print ( 0 )
else :
print ( - 1 )
|
C#
using System;
public class GFG{
static public void Main (){
int n = 10;
if (n % 10 == 0)
{ Console.WriteLine( "0" ); }
else {
n = n*2;
if (n % 10 == 0)
{ Console.WriteLine( "0" ); }
else
{ Console.WriteLine( "-1" ); }
}
}
}
|
Javascript
<script>
let n = 10;
if (n % 10 == 0)
document.write(0);
else {
n = n * 2;
if (n % 10 == 0)
document.write(0);
else
document.write(-1);
}
</script>
|
Time Complexity: O(1), because it is performing constant operations
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...