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

Опубликовано: 21 Января, 2022

Given a number, check if it is divisible by 7. You are not allowed to use modulo operator, floating point arithmetic is also not allowed.
A simple method is repeated subtraction. Following is another interesting method.
Divisibility by 7 can be checked by a recursive method. A number of the form 10a + b is divisible by 7 if and only if a – 2b is divisible by 7. In other words, subtract twice the last digit from the number formed by the remaining digits. Continue to do this until a small number.
Example: the number 371: 37 – (2×1) = 37 – 2 = 35; 3 – (2 × 5) = 3 – 10 = -7; thus, since -7 is divisible by 7, 371 is divisible by 7.
Following is the implementation of the above method

## C++

 `// A Program to check whether a number is divisible by 7``#include ``using` `namespace` `std;` `int` `isDivisibleBy7( ``int` `num )``{``    ``// If number is negative, make it positive``    ``if``( num < 0 )``        ``return` `isDivisibleBy7( -num );` `    ``// Base cases``    ``if``( num == 0 || num == 7 )``        ``return` `1;``    ``if``( num < 10 )``        ``return` `0;` `    ``// Recur for ( num / 10 - 2 * num % 10 )``    ``return` `isDivisibleBy7( num / 10 - 2 *``            ``( num - num / 10 * 10 ) );``}` `// Driver code``int` `main()``{``    ``int` `num = 616;``    ``if``( isDivisibleBy7(num ) )``        ``cout << ``"Divisible"` `;``    ``else``        ``cout << ``"Not Divisible"` `;``    ``return` `0;``}` `// This code is contributed by rathbhupendra`

## C

 `// A Program to check whether a number is divisible by 7``#include ` `int` `isDivisibleBy7( ``int` `num )``{``    ``// If number is negative, make it positive``    ``if``( num < 0 )``        ``return` `isDivisibleBy7( -num );` `    ``// Base cases``    ``if``( num == 0 || num == 7 )``        ``return` `1;``    ``if``( num < 10 )``        ``return` `0;` `    ``// Recur for ( num / 10 - 2 * num % 10 )``    ``return` `isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) );``}` `// Driver program to test above function``int` `main()``{``    ``int` `num = 616;``    ``if``( isDivisibleBy7(num ) )``        ``printf``( ``"Divisible"` `);``    ``else``        ``printf``( ``"Not Divisible"` `);``    ``return` `0;``}`

## Java

 `// Java program to check whether a number is divisible by 7``import` `java.io.*;` `class` `GFG``{``    ``// Function to check whether a number is divisible by 7``    ``static` `boolean` `isDivisibleBy7(``int` `num)``    ``{``        ``// If number is negative, make it positive``        ``if``( num < ``0` `)``            ``return` `isDivisibleBy7( -num );`` ` `        ``// Base cases``        ``if``( num == ``0` `|| num == ``7` `)``            ``return` `true``;``        ``if``( num < ``10` `)``            ``return` `false``;`` ` `        ``// Recur for ( num / 10 - 2 * num % 10 )``        ``return` `isDivisibleBy7( num / ``10` `- ``2` `* ( num - num / ``10` `* ``10` `) );``    ``}``    ` `    ``// Driver program``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `num = ``616``;``        ``if``(isDivisibleBy7(num))``            ``System.out.println(``"Divisible"``);``        ``else``            ``System.out.println(``"Not Divisible"``);``    ``}``}` `// Contributed by Pramod Kumar`

## Python

 `# Python program to check whether a number is divisible by 7` `# Function to check whether a number is divisible by 7``def` `isDivisibleBy7(num) :``    ` `    ``# If number is negative, make it positive``    ``if` `num < ``0` `:``        ``return` `isDivisibleBy7( ``-``num )` `    ``# Base cases``    ``if``( num ``=``=` `0` `or` `num ``=``=` `7` `) :``        ``return` `True``    ` `    ``if``( num < ``10` `) :``        ``return` `False``        ` `    ``# Recur for ( num / 10 - 2 * num % 10 )``    ``return` `isDivisibleBy7( num ``/` `10` `-` `2` `*` `( num ``-` `num ``/` `10` `*` `10` `) )``    ` `# Driver program``num ``=` `616``if``(isDivisibleBy7(num)) :``    ``print` `"Divisible"``else` `:``    ``print` `"Not Divisible"` `# This code is contributed by Nikita Tiwari`

## C#

 `// C# program to check whether a``// number is divisible by 7``using` `System;` `class` `GFG {``    ` `    ``// Function to check whether a``    ``// number is divisible by 7``    ``static` `bool` `isDivisibleBy7(``int` `num)``    ``{``        ` `        ``// If number is negative,``        ``// make it positive``        ``if``( num < 0 )``            ``return` `isDivisibleBy7(-num);` `        ``// Base cases``        ``if``( num == 0 || num == 7 )``            ``return` `true``;``        ``if``( num < 10 )``            ``return` `false``;` `        ``// Recur for ( num / 10 - 2 * num % 10 )``        ``return` `isDivisibleBy7(num / 10 - 2 *``                             ``( num - num / 10 * 10 ));``    ``}``    ` `    ``// Driver Code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `num = 616;``        ``if``(isDivisibleBy7(num))``            ``Console.Write(``"Divisible"``);``        ``else``            ``Console.Write(``"Not Divisible"``);``    ``}``}` `// This code is contributed by Nitin Mittal.`

## PHP

 `=0 )``        ``echo``(``"Divisible"``);``    ``else``        ``echo``(``"Not Divisible"``);``    ` `// This code is contributed by vt_m.``?>`

## Javascript

 ``

Выход:

` Делимый`

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

` 10. а + б`

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

` 20.a + 2.b`

а потом

` 21.a - a + 2.b `

Исключение кратного 21 дает

` -a + 2b`

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

` а - 2б`

Есть и другие интересные методы проверки делимости на 7 и другие числа. См. Дополнительную информацию на следующей странице Wiki.
Использованная литература:
http://en.wikipedia.org/wiki/Divisibility_rule
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .