Comprobar si un número es divisible por 47 o no

Dado un número N , la tarea es verificar si el número es divisible por 47 o no. 
Ejemplos: 
 

Entrada: N = 1645 
Salida: sí 
Explicación: 
47 * 35 = 1645
Entrada: N = 4606 
Salida: sí 
Explicación: 
47 * 98 = 4606 
 

Enfoque: La prueba de divisibilidad de 47 es: 
 

  1. Extraiga el último dígito.
  2. Resta 14 * último dígito del número restante obtenido después de quitar el último dígito.
  3. Repita los pasos anteriores hasta obtener un número de dos dígitos, o cero.
  4. Si el número de dos dígitos es divisible por 47, o es 0, entonces el número original también es divisible por 47.

Por ejemplo: 
 

If N = 59173

Step 1:
  N = 59173
  Last digit = 3
  Remaining number = 5917
  Subtracting 14 times last digit
  Resultant number = 5917 - 14*3 = 5875

Step 2:
  N = 5875
  Last digit = 5
  Remaining number = 587
  Subtracting 14 times last digit
  Resultant number = 587 - 14*5 = 517

Step 3:
  N = 517
  Last digit = 7
  Remaining number = 51
  Subtracting 14 times last digit
  Resultant number = 51 - 14*7 = -47

Step 4:
  N = -47
  Since N is a two-digit number,
  and -47 is divisible by 47

Therefore N = 59173 is also divisible by 47

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to check whether a number
// is divisible by 47 or not
#include<bits/stdc++.h>
#include<stdlib.h>
 
using namespace std;
 
// Function to check if the number is  divisible by 47 or not
bool isDivisible(int n) 
{
    int d;
    // While there are at least two digits
    while (n / 100)
    {
  
        // Extracting the last
        d = n % 10;
  
        // Truncating the number
        n /= 10;
  
        // Subtracting fourteen times the last
        // digit to the remaining number
        n = abs(n-(d * 14));
    }
    // Finally return if the two-digit
    // number is divisible by 47 or not
    return (n % 47 == 0) ;
}
 
// Driver Code
int main() {
    int N = 59173;
  
    if (isDivisible(N))
        cout<<"Yes"<<endl ;
    else
        cout<<"No"<<endl ;
    
     return 0;    
}   
 
// This code is contributed by ANKITKUMAR34

Java

// Java program to check whether a number
// is divisible by 47 or not
import java.util.*;
 
class GFG{
  
// Function to check if the number is  divisible by 47 or not
static boolean isDivisible(int n) 
{
    int d;
     
    // While there are at least two digits
    while ((n / 100) > 0)
    {
   
        // Extracting the last
        d = n % 10;
   
        // Truncating the number
        n /= 10;
   
        // Subtracting fourteen times the last
        // digit to the remaining number
        n = Math.abs(n - (d * 14));
    }
 
    // Finally return if the two-digit
    // number is divisible by 47 or not
    return (n % 47 == 0) ;
}
  
// Driver Code
public static void main(String[] args) {
    int N = 59173;
   
    if (isDivisible(N))
        System.out.print("Yes") ;
    else
        System.out.print("No");
     
 }    
}   
 
// This code is contributed by PrinciRaj1992

Python 3

# Python program to check if a number
# is divisible by 47 or not
 
# Function to check if the number is
# divisible by 47 or not
def isDivisible(n) :
  
    # While there are at least two digits
    while n // 100 :
  
        # Extracting the last
        d = n % 10
  
        # Truncating the number
        n //= 10
  
        # Subtracting fourteen times the last
        # digit to the remaining number
        n = abs(n- (d * 14))
  
    # Finally return if the two-digit
    # number is divisible by 43 or not
    return (n % 47 == 0)
  
# Driver Code
if __name__ == "__main__" :
      
    n = 59173
 
    if (isDivisible(n)) :
        print("Yes")
    else :
        print("No")

C#

// C# program to check whether a number
// is divisible by 47 or not
using System;
         
class GFG
{
     
// Function to check if the number is divisible by 47 or not
static bool isDivisible(int n)
{
    int d;
     
    // While there are at least two digits
    while (n / 100 > 0)
    {
     
        // Extracting the last
        d = n % 10;
     
        // Truncating the number
        n /= 10;
     
        // Subtracting fourteen times the last
        // digit to the remaining number
        n = Math.Abs(n - (d * 14));
    }
     
    // Finally return if the two-digit
    // number is divisible by 47 or not
    return (n % 47 == 0);
}
     
// Driver Code
public static void Main()
{
    int N = 59173;
     
    if (isDivisible(N))
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
}
 
// This code is contributed by mohit kumar 29.

Javascript

<script>
// Javascript program to check whether a number
// is divisible by 47 or not
 
// Function to check if the number is  divisible by 47 or not
function isDivisible(n) 
{
    let d;
       
    // While there are at least two digits
    while (Math.floor(n / 100) > 0)
    {
     
        // Extracting the last
        d = n % 10;
     
        // Truncating the number
        n = Math.floor(n / 10);
     
        // Subtracting fourteen times the last
        // digit to the remaining number
        n = Math.abs(n - (d * 14));
    }
   
    // Finally return if the two-digit
    // number is divisible by 47 or not
    return (n % 47 == 0) ;
}
 
// Driver Code
     
    let N = 59173;
     
    if (isDivisible(N) != 0)
        document.write("Yes") ;
    else
        document.write("No");
 
// This code is contributed by sanjoy_62.
</script>

PHP

<?php
 
  // PHP program to check whether a number
  // is divisible by 47 or not
 
  // Function to check if the number is divisible by 47 or not
  function isDivisible($n)
{
 
  // While there are at least two digits
  while (($n / 100) <=0)
  {
 
    // Extracting the last
    $d = $n % 10;
 
    // Truncating the number
    $n = ($n/10);
 
    // Subtracting seven times the last
    // digit to the remaining number
    $n = Math.abs($n - ($d * 14));
  }
 
  // Finally return if the two-digit
  // number is divisible by 71 or not
  return ($n % 47 == 0) ;
}
 
// Driver Code
$N = 1645;
if (isDivisible($N)) {
  echo("Yes") ;
}
else{
  echo("No");
}
 
// This code is contributed by ksrikanth0498
 
?>
Producción: 

Yes

 

Complejidad de tiempo: O (log 10 N)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por virusbuddha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *