 Open in App
Not now

# To check whether a large number is divisible by 7

• Difficulty Level : Medium
• Last Updated : 14 Mar, 2023

You are given an n-digit large number, you have to check whether it is divisible by 7.
A (r+1)-digit integer n whose digital form is (ar ar-1 ar-2….a2 a1 a0) is divisible by 7 if and only if the alternate series of numbers (a2 a1 a0) – (a5 a4 a3) + (a8 a7 a6) – … is divisible by 7.

The triplets of digits within parenthesis represent a 3-digit number in digital form.

The given number n can be written as a sum of powers of 1000 as follows.
n= (a2 a1 a0) + (a5 a4 a3)*1000 + (a8 a7 a6)*(1000*1000) +….
As 1000 = (-1)(mod 7), 1000 as per congruence relation.
For a positive integer n, two numbers a and b are said to be congruent modulo n, if their difference
(a – b) is an integer multiple of n (that is, if there is an integer k such that a – b = kn). This congruence relation is typically considered when a and b are integers, and is denoted Hence we can write:
n = { (a2a1a0) + (a5a4a3)* (-1) + (a8a7a6)* (-1)*(-1)+…..}(mod 7),
Thus n is divisible by 7 if and if only if the series is divisible by 7.

Examples:

Input : 8955795758
Output : Divisible by 7
Explanation:
We express the number in terms of triplets
of digits as follows.
(008)(955)(795)(758)
Now, 758- 795 + 955 - 8 = 910, which is
divisible by 7

Input : 100000000000
Output : Not Divisible by 7
Explanation:
We express the number in terms of triplets
of digits as follows.
(100)(000)(000)(000)
Now, 000- 000 + 000 - 100 = -100, which is
not divisible by 7

Note that the number of digits in n may not be multiple of 3. In that case, we pass zero(s) on the left side of the remaining digits(s) after taking out all the triplets (from the right side of n) to form the last triplet.
A simple and efficient method is to take input in form of a string (make its length in form of 3*m by adding 0 to left of the number if required) and then you have to add the digits in blocks of three from the right to left until it becomes a 3 digit number to form an alternate series and check whether the series is divisible by 7 or not.

Here the program implementation to check the divisibility of 7 is done.

Recommended Practice

## C++

 // C++ code to check divisibility of a // given large number by 7 #include using namespace std;   int isdivisible7(string num) {     int n = num.length(), gSum=0;     if (n == 0)         return 1;       // Append required 0s at the beginning.     if (n % 3 == 1) {         num="00" + num;         n += 2;     }     else if (n % 3 == 2) {         num= "0" + num;         n++;     }       // add digits in group of three in gSum     int i, GSum = 0, p = 1;     for (i = n - 1; i >= 0; i--) {           // group saves 3-digit group         int group = 0;         group += num[i--] - '0';         group += (num[i--] - '0') * 10;         group += (num[i] - '0') * 100;           gSum = gSum + group * p;           // generate alternate series of plus         // and minus         p *= (-1);     }       return (gSum % 7 == 0); }   // Driver code int main() {     // Driver method     string num= "8955795758";     if (isdivisible7(num))         cout << "Divisible by 7";     else         cout << "Not Divisible by 7";     return 0; }

## C

 // C code to check divisibility of a // given large number by 7 #include  #include  int isdivisible7(char num[]) {     int n = strlen(num), gSum=0;     char final[n+3];     if (n == 0 && num == '\n')         return 1;       // Append required 0s at the beginning.     if (n % 3 == 1) {         final='0';         final='0';         strcat(final,num);         n += 2;     }     else if (n % 3 == 2) {         final='0';         strcat(final,num);         n++;     }       // add digits in group of three in gSum     int i, GSum = 0, p = 1;     for (i = n - 1; i >= 0; i--) {           // group saves 3-digit group         int group = 0;         group += final[i--] - '0';         group += (final[i--] - '0') * 10;         group += (final[i] - '0') * 100;           gSum = gSum + group * p;           // generate alternate series of plus         // and minus         p *= (-1);     }       return (gSum % 7 == 0); }   // Driver code int main() {     // Driver method     char num[] = "8955795758";     if (isdivisible7(num))         printf("Divisible by 7");     else         printf("Not Divisible by 7");     return 0; }

## Java

 // Java code to check divisibility of a given large number by 7   class Test {     // Method to check divisibility     static boolean isDivisible7(String num)     {         int n = num.length();         if (n == 0 && num.charAt(0) == '0')             return true;           // Append required 0s at the beginning.         if (n % 3 == 1)             num = "00" + num;         if (n % 3 == 2)             num = "0" + num;         n = num.length();           // add digits in group of three in gSum         int gSum = 0, p = 1;         for (int i = n - 1; i >= 0; i--) {               // group saves 3-digit group             int group = 0;             group += num.charAt(i--) - '0';             group += (num.charAt(i--) - '0') * 10;             group += (num.charAt(i) - '0') * 100;             gSum = gSum + group * p;             // generate alternate series of plus and minus             p = p * -1;         }           // calculate result till 3 digit sum         return (gSum % 7 == 0);     }       // Driver method     public static void main(String args[])     {         String num = "8955795758";           System.out.println(isDivisible7(num) ? "Divisible by 7" : "Not Divisible  by 7");     } }

## Python3

 # Python 3 code to check divisibility  # of a given large number by 7   def isdivisible7(num):     n = len(num)     if (n == 0 and num == '\n'):         return 1       # Append required 0s at the beginning.     if (n % 3 == 1) :         num = "00" + str(num)          n += 2           elif (n % 3 == 2) :         num = "0" + str(num)          n += 1       # add digits in group of three in gSum     GSum = 0     p = 1     i = n-1     while i>=0 :           # group saves 3-digit group         group = 0         group += ord(num[i]) - ord('0')         i -= 1         group += (ord(num[i]) - ord('0')) * 10         i -= 1         group += (ord(num[i]) - ord('0')) * 100           GSum = GSum + group * p           # generate alternate series of          # plus and minus         p *= (-1)         i -= 1       return (GSum % 7 == 0)   # Driver code if __name__ == "__main__":           num = "8955795758"     if (isdivisible7(num)):         print("Divisible by 7")     else :         print("Not Divisible by 7")   # This code is contributed by ChitraNayal

## C#

 // C# code to check divisibility of a // given large number by 7 using System;   class GFG {       // Method to check divisibility     static bool isDivisible7(String num)     {         int n = num.Length;         if (n == 0 && num == '0')             return true;           // Append required 0s at the beginning.         if (n % 3 == 1)             num = "00" + num;           if (n % 3 == 2)             num = "0" + num;           n = num.Length;           // add digits in group of three in gSum         int gSum = 0, p = 1;         for (int i = n - 1; i >= 0; i--) {               // group saves 3-digit group             int group = 0;             group += num[i--] - '0';             group += (num[i--] - '0') * 10;             group += (num[i] - '0') * 100;             gSum = gSum + group * p;               // generate alternate series             // of plus and minus             p = p * -1;         }           // calculate result till 3 digit sum         return (gSum % 7 == 0);     }       // Driver code     static public void Main()     {         String num = "8955795758";           // Function calling         Console.WriteLine(isDivisible7(num) ? "Divisible by 7" : "Not Divisible by 7");     } }   // This code is contributed by Ajit.

## PHP

 = 0; $i--)  {   // group saves 3-digit group   $group = 0;          $group += $num[$i--] - '0';   $group += ($num[$i--] - '0') * 10;          $group += ($num[$i] - '0') * 100;   $gSum = $gSum + $group * $p;     // generate alternate series   // of plus and minus   $p = $p * -1;   }   // calculate result till 3 digit sum   return ($gSum % 7 == 0);  }    // Driver Code $num = "8955795758";  echo (isDivisible7($num) ?          "Divisible by 7" :         "Not Divisible by 7");    // This code is contributed by Ryuga ?>

## Javascript

 

Output

Divisible by 7

Time Complexity: O(n), where n is the number of digits in num.
Auxiliary Space: O(1)

Method 2: Checking given number is divisible by 7 or not by using modulo division operator “%”.

## C++

 #include  using namespace std; int main() {     //input      long long int n=100000000000;                 // finding given number is divisible by 17 or not     if (n%7==0)     {         cout << "Yes";     }     else     {         cout << "No";     }         return 0; }

## Java

 // Java code // To check whether the given number is divisible by 17 or not   import java.io.*; import java.util.*;     class GFG {       public static void main(String[] args)   {     //input     long n=100000000000L;     // finding given number is divisible by 71 or not           if ((n)%7==0)     {         System.out.println("Yes");     }     else     {         System.out.println("No");     }         } } //this code is contributed by aditya942003patil

## Python3

 # Python code  # To check whether the given number is divisible by 711 or not   #input  n=100000000000 # the above input can also be given as n=input() -> taking input from user # finding given number is divisible by 7 or not if int(n)%7==0:   print("Yes")  else:    print("No")        # this code is contributed by gangarajula laxmi

## C#

 // c# code to check whether the given // number is diivisible by 7 or not using System;    public class GFG {            public static void Main()     {         //input          long n=100000000000;                   // finding given number is divisible by 7 or not         if (n%7==0)         {             Console.Write("Yes");         }         else         {             Console.Write("No");         }     } } // This code is contributed by aditya942003patil

## Javascript

 

## PHP

 

Output

No

Time Complexity: O(1)
Auxiliary Space: O(1)

Method 3: Checking given String(containing digits 0-9) is divisible by 7 or not by checking each character of the string and taking its modulo % .

Firstly we take first character of the String and take its modulo with 7 .

Then we add the remainder with the next character and take modulo of that and so.. on , until we reach the end of the string .

If at last we have remainder as 0 we get string divisible by 7 otherwise we get it as not divisible by 7 .

## C++

 // C++ code for the above approach #include  using namespace std;   bool isDivisibleBySeven(string s) {     int remainder = 0;     for (int i = 0; i < s.length(); i++) {         int digit = remainder * 10 + (s[i] - '0');         remainder = digit % 7;     }       return remainder == 0; } int main() {     string s = "8955795758";     bool check = isDivisibleBySeven(s);     cout << ((check) ? "String is divisible by 7"                      : "String is not divisible by 7");     return 0; }   // This code is contributed by karandeep1234

## Java

 /*package whatever //do not write package name here */   import java.io.*; import java.util.Scanner;   class GFG {     public boolean isDivisibleBySeven(String s)     {         int remainder = 0;         for (int i = 0; i < s.length(); i++) {             int digit                 = remainder * 10 + (s.charAt(i) - '0');             remainder = digit % 7;         }           return remainder == 0;     }     public static void main(String[] args)     {         GFG obj = new GFG();         String s = "8955795758";         boolean check = obj.isDivisibleBySeven(s);         System.out.print(             (check) ? "String is divisible by 7"                     : "String is not divisible by 7");     } }

## Python3

 # Python code for the above approach def isDivisibleBySeven(s):     remainder = 0     for i in range(len(s)):         digit = remainder * 10 + int(s[i]) - 0         remainder = digit % 7       return remainder == 0     s = "8955795758" check = isDivisibleBySeven(s) print("String is divisible by 7" if check else "String is not divisible by 7")   # This code is contributed by lokesh

## C#

 // C# code for the above approach   using System;   public class GFG {       public bool isDivisibleBySeven(String s)     {         int remainder = 0;         for (int i = 0; i < s.Length; i++) {             int digit = remainder * 10 + (s[i] - '0');             remainder = digit % 7;         }           return remainder == 0;     }       static public void Main()     {           GFG obj = new GFG();         string s = "8955795758";         bool check = obj.isDivisibleBySeven(s);         Console.Write((check)                           ? "String is divisible by 7"                           : "String is not divisible by 7");     } }   // This code is contributed by lokesh.

## Javascript

 // JavaScript code for the above approach   function isDivisibleBySeven(s) {     let remainder = 0;     for (let i = 0; i < s.length; i++) {         let digit = remainder * 10 + (s.charCodeAt(i) - '0'.charCodeAt(0));         remainder = digit % 7;     }     return remainder === 0; }   let s = "8955795758"; let check = isDivisibleBySeven(s); console.log(check ? "String is divisible by 7" : "String is not divisible by 7");   // This code is contributed by lokeshmvs21.

Output

String is divisible by 7

Time Complexity: O(n) , n being length of the input string .
Auxiliary Space: O(1)

This article is contributed by Sruti Rai. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.