Рубрики

Проверьте делимость на 7

Для заданного числа проверьте, делится ли оно на 7. Вы не можете использовать оператор по модулю, арифметика с плавающей запятой также не допускается.

Простой метод — повторное вычитание. Ниже приводится еще один интересный метод.

Делимость на 7 может быть проверена рекурсивным методом. Число в форме 10a + b делится на 7 тогда и только тогда, когда a — 2b делится на 7. Другими словами, дважды вычтите последнюю цифру из числа, образованного оставшимися цифрами. Продолжайте делать это до небольшого количества.

Пример: число 371: 37 — (2 × 1) = 37 — 2 = 35; 3 — (2 × 5) = 3 — 10 = -7; таким образом, поскольку -7 делится на 7, 371 делится на 7.

Ниже приведена реализация вышеуказанного способа

C ++

// Программа для проверки деления числа на 7
#include <bits/stdc++.h>

using namespace std; 

  

int isDivisibleBy7( int num ) 

    // Если число отрицательное, сделать его положительным

    if( num < 0 ) 

        return isDivisibleBy7( -num ); 

  

    // Базовые случаи

    if( num == 0 || num == 7 ) 

        return 1; 

    if( num < 10 ) 

        return 0; 

  

    // Повторение для (num / 10 - 2 * num% 10)

    return isDivisibleBy7( num / 10 - 2 *

            ( num - num / 10 * 10 ) ); 

  
// Код драйвера

int main() 

    int num = 616; 

    if( isDivisibleBy7(num ) ) 

        cout << "Divisible"

    else

        cout << "Not Divisible"

    return 0; 

  
// Этот код предоставлен rathbhupendra

С

// Программа для проверки деления числа на 7
#include <stdio.h>

  

int isDivisibleBy7( int num )

{

    // Если число отрицательное, сделать его положительным

    if( num < 0 )

        return isDivisibleBy7( -num );

  

    // Базовые случаи

    if( num == 0 || num == 7 )

        return 1;

    if( num < 10 )

        return 0;

  

    // Повторение для (num / 10 - 2 * num% 10)

    return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) );

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    int num = 616;

    if( isDivisibleBy7(num ) )

        printf( "Divisible" );

    else

        printf( "Not Divisible" );

    return 0;

}

Джава

// Java-программа для проверки, делится ли число на 7

import java.io.*;

  

class GFG 

{

    // Функция для проверки, делится ли число на 7

    static boolean isDivisibleBy7(int num)

    {

        // Если число отрицательное, сделать его положительным

        if( num < 0 )

            return isDivisibleBy7( -num );

   

        // Базовые случаи

        if( num == 0 || num == 7 )

            return true;

        if( num < 10 )

            return false;

   

        // Повторение для (num / 10 - 2 * num% 10)

        return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) );

    }

      

    // Драйвер программы

    public static void main (String[] args) 

    {

        int num = 616;

        if(isDivisibleBy7(num))

            System.out.println("Divisible");

        else

            System.out.println("Not Divisible");

    }

}

  
// Предоставлено Прамод Кумар

питон

# Программа Python, чтобы проверить, делится ли число на 7

  
# Функция для проверки, делится ли число на 7

def isDivisibleBy7(num) :

      

    # Если число отрицательное, сделайте его положительным

    if num < 0 :

        return isDivisibleBy7( -num )

  

    # Базовые случаи

    if( num == 0 or num == 7 ) :

        return True

      

    if( num < 10 ) :

        return False

          

    # Рекурс для (число / 10 - 2 * число% 10)

    return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) )

      
# Драйверная программа

num = 616

if(isDivisibleBy7(num)) :

    print "Divisible"

else :

    print "Not Divisible"

  
# Этот код предоставлен Никитой Тивари

C #

// C # программа для проверки
// число делится на 7

using System;

  

class GFG {

      

    // Функция для проверки

    // число делится на 7

    static bool isDivisibleBy7(int num)

    {

          

        // Если число отрицательное,

        // сделать это положительным

        if( num < 0 )

            return isDivisibleBy7(-num);

  

        // Базовые случаи

        if( num == 0 || num == 7 )

            return true;

        if( num < 10 )

            return false;

  

        // Повторение для (num / 10 - 2 * num% 10)

        return isDivisibleBy7(num / 10 - 2 * 

                             ( num - num / 10 * 10 ));

    }

      

    // Код драйвера

    public static void Main () 

    {

        int num = 616;

        if(isDivisibleBy7(num))

            Console.Write("Divisible");

        else

            Console.Write("Not Divisible");

    }

}

  
// Этот код предоставлен Нитином Митталом.

PHP

<?php
// Программа PHP для проверки
// число делится на 7

  
// Функция для проверки
// число делится на 7

function isDivisibleBy7( $num )

{

      

    // Если число отрицательное,

    // сделать это положительным

    if( $num < 0 )

        return isDivisibleBy7( -$num );

  

    // Базовые случаи

    if( $num == 0 || $num == 7 )

        return 1;

    if( $num < 10 )

        return 0;

  

    // Повторение для (num / 10 - 2 * num% 10)

    return isDivisibleBy7($num / 10 - 2 * 

                         ($num - $num / 10 * 10 ) );

}

  

    // Код драйвера

    $num = 616;

    if( isDivisibleBy7($num )>=0 )

        echo("Divisible");

    else

        echo("Not Divisible");

      
// Этот код предоставлен vt_m.
?>


Выход:

Divisible

Как это работает? Позвольте 'b' быть последней цифрой числа 'n', и позвольте 'a' быть числом, которое мы получаем, когда мы отделяем 'b'.
Представление числа также может быть умножено на любое число относительно простого по отношению к делителю без изменения его делимости. Наблюдая, что 7 делит 21, мы можем выполнить следующее:

 10.a + b 

после умножения на 2 это становится

 20.a + 2.b 

а потом

 21.a - a + 2.b 

Устранение, кратное 21 дает

 -a + 2b

и умножение на -1 дает

 a - 2b

Существуют и другие интересные способы проверки делимости на 7 и другие числа. Смотрите следующую вики-страницу для деталей.

Ссылки:
http://en.wikipedia.org/wiki/Divisibility_rule

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Проверьте делимость на 7

0.00 (0%) 0 votes