# Number Theory (Interesting Facts and Algorithms)

Questions based on various concepts of number theory and different types of number are quite frequently asked in programming contests. In this article, we discuss some famous facts and algorithms:

**Interesting Facts : **

- All 4 digit palindromic numbers are divisible by 11.
- If we repeat a three-digit number twice, to form a six-digit number. The result will will be divisible by 7, 11 and 13, and dividing by all three will give your original three-digit number.
- A number of form 2
^{N}has exactly N+1 divisors. For example 4 has 3 divisors, 1, 2 and 4. - To calculate sum of factors of a number, we can find the number of prime factors and their exponents. Let p
_{1}, p_{2}, … p_{k}be prime factors of n. Let a_{1}, a_{2}, .. a_{k}be highest powers of p_{1}, p_{2}, .. p_{k}respectively that divide n, i.e., we can write n as**n = (p**._{1}^{a1})*(p_{2}^{a2})* … (p_{k}^{ak})Sum of divisors = (1 + p

_{1}+ p_{1}^{2}... p_{1}^{a1}) * (1 + p_{2}+ p_{2}^{2}... p_{2}^{a2}) * ............................................. (1 + p_{k}+ p_{k}^{2}... p_{k}^{ak}) We can notice that individual terms of above formula are Geometric Progressions (GP). We can rewrite the formula as. Sum of divisors = (p_{1}^{a1+1}- 1)/(p_{1}-1) * (p_{2}^{a2+1}- 1)/(p_{2}-1) * .................................. (p_{k}^{ak+1}- 1)/(p_{k}-1) - For a product of N numbers, if we have to subtract a constant K such that the product gets its maximum value, then subtract it from a largest value such that largest value-k is greater than 0. If we have to subtract a constant K such that the product gets its minimum value, then subtract it from the smallest value where smallest value-k should be greater than 0
- Goldbech`s conjecture: Every even integer greater than 2 can be expressed as the sum of 2 primes.
- Perfect numbers or Amicable numbers: Perfect numbers are those numbers which are equal to the sum of their proper divisors. Example: 6 = 1 + 2 + 3
- Lychrel numbers: Are those numbers that cannot form a palindrome when repeatedly reversed and added to itself. For example 47 is not a Lychrel Number as 47 + 74 = 121
- Lemoine’s Conjecture : Any odd integer greater than 5 can be expressed as a sum of an odd prime (all primes other than 2 are odd) and an even semiprime. A semiprime number is a product of two prime numbers. This is called Lemoine’s conjecture.
- Fermat’s Last Theorem : According to the theorem, no three positive integers a, b, c satisfy the equation, for any integer value of n greater than 2. For n = 1 and n = 2, the equation have infinitely many solutions.

**Number Theory Algorithms**

**GCD and LCM **

Recent Articles on GCD and LCM!

**Prime Factorization and Divisors :**

- Prime factors
- Pollard’s Rho Algorithm for Prime Factorization
- Find all divisors of a natural number
- Sum of all proper divisors of a natural number
- Prime Factorization using Sieve O(log n) for multiple queries
- Find politeness of a number
- Print prime numbers in a given range using C++ STL
- k-th prime factor of a given number
- Smith Numbers

Recent Articles on Prime Factors!

**Fibonacci Numbers:**

- Fibonacci Numbers
- Interesting facts about Fibonacci numbers
- How to check if a given number is Fibonacci number?
- Zeckendorf’s Theorem (Non-Neighbouring Fibonacci Representation)

Recent Articles on Fibonacci Numbers!

**Catalan Numbers :**

Recent Articles on Catalan Numbers!

**Modular Arithmetic :**

- Modular Exponentiation (Power in Modular Arithmetic)
- Modular multiplicative inverse
- Modular Division
- Multiplicative order
- Find Square Root under Modulo p | Set 1 (When p is in form of 4*i + 3)
- Find Square Root under Modulo p | Set 2 (Shanks Tonelli algorithm)
- Euler’s criterion (Check if square root under modulo p exists)
- Multiply large integers under large modulo
- Find sum of modulo K of first N natural number
- How to compute mod of a big number?
- BigInteger Class in Java
- Modulo 10^9+7 (1000000007)
- How to avoid overflow in modular multiplication?
- RSA Algorithm in Cryptography
- Find (a^b)%m where ‘a’ is very large
- Find power of power under mod of a prime

Recent Articles on Modular Arithmetic!

- Euler’s Totient Function
- Optimized Euler Totient Function for Multiple Evaluations
- Euler’s Totient function for all numbers smaller than or equal to n
- Primitive root of a prime number n modulo n

**nCr Computations :**

- Binomial Coefficient
- Compute nCr % p | Set 1 (Introduction and Dynamic Programming Solution)
- Compute nCr % p | Set 2 (Lucas Theorem)
- Compute nCr % p | Set 3 (Using Fermat Little Theorem)

**Chinese Remainder Theorem : **

- Set 1 (Introduction)
- Set 2 (Inverse Modulo based Implementation)
- Cyclic Redundancy Check and Modulo-2 Division
- Using Chinese Remainder Theorem to Combine Modular equations

**Factorial :**

- Factorial
- Legendre’s formula (Given p and n, find the largest x such that p^x divides n!)
- Sum of divisors of factorial of a number
- Count Divisors of Factorial
- Compute n! under modulo p
- Wilson’s Theorem
- Primality Test | Set 1 (Introduction and School Method)
- Primality Test | Set 2 (Fermat Method)
- Primality Test | Set 3 (Miller–Rabin)
- Primality Test | Set 4 (Solovay-Strassen)
- GFact 22 | (2^x + 1 and Prime)
- Euclid’s Lemma
- Sieve of Eratosthenes
- Segmented Sieve
- Sieve of Atkin
- Sieve of Sundaram to print all primes smaller than n
- Sieve of Eratosthenes in 0(n) time complexity
- Check if a large number is divisible by 3 or not
- Check if a large number is divisible by 11 or not
- To check divisibility of any large number by 999
- Carmichael Numbers
- Generators of finite cyclic group under addition
- Measure one litre using two vessels and infinite water supply
- Program to find last digit of n’th Fibonnaci Number
- GCD of two numbers when one of them can be very large
- Find Last Digit Of a^b for Large Numbers
- Remainder with 7 for large numbers
- Count all sub-arrays having sum divisible by k
- Partition a number into two divisible parts
- Number of substrings divisible by 6 in a string of integers
- ‘Practice Problems’ on Modular Arithmetic
- ‘Practice Problems’ on Number Theory
- Ask a Question on Number theory
- Padovan, OESIS
- Interesting facts about Fibonacci numbers
- Number Theory | Generators of finite cyclic group under addition
- An interesting solution to get all prime numbers smaller than n
- Generate a list of n consecutive composite numbers (An interesting method)
- Clustering Coefficient in Graph Theory
- Mathematics | Graph theory practice questions
- Combinatorial Game Theory | Set 4 (Sprague - Grundy Theorem)
- Game Theory (Normal-form game) | Set 3 (Game with Mixed Strategy)
- Game Theory (Normal form game) | Set 2 (Game with Pure Strategy)
- Combinatorial Game Theory | Set 2 (Game of Nim)
- Count number of trailing zeros in Binary representation of a number using Bitset
- Count number of triplets with product equal to given number with duplicates allowed
- Find minimum number to be divided to make a number a perfect square
- Given number of matches played, find number of teams in tournament
- Number of ways to split a binary number such that every part is divisible by 2

- Recent Articles on Factorial!

**Prime numbers and Primality Tests :**

Recent Articles on Prime Number!

**Sieve Algorithms :**

**Divisibility and Large Numbers :**

Recent Articles on Divisibility!

**Misc :**

Recent Articles on Mathematical Algorithms!

Recent Articles on Number Theory

Above facts are contributed by **Yash Kodesia**. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more facts about Number Theory.