Any efficient method to find divisors of a number

  • Context: High School 
  • Thread starter Thread starter Rishav sapahi
  • Start date Start date
  • Tags Tags
    Method
Click For Summary

Discussion Overview

The discussion revolves around efficient methods for finding the divisors of large numbers, exploring various algorithms and their complexities. It includes theoretical aspects, algorithmic approaches, and references to existing literature on the topic.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • Some participants note that traditional division methods become tedious for large numbers.
  • One participant inquires about the algorithms used by calculators and computers, mentioning the fundamental theorem of arithmetic.
  • Trial division is described as the simplest method, involving checking divisibility by all primes up to the square root of the number, but it is acknowledged as slow and exponential in time complexity.
  • Faster algorithms based on Fermat's ideas are proposed, which involve finding perfect squares modulo N and using the greatest common divisor (gcd) to achieve factorization.
  • Dixon's Factorization method is mentioned as a subexponential algorithm that looks for smooth numbers to find congruences of squares.
  • The Quadratic Sieve is discussed as an optimization of Dixon's method that employs sieving techniques to improve efficiency.
  • The General Number Field Sieve is identified as the fastest known algorithm for factoring large integers, though its complexity and underlying principles are noted as not fully understood by all participants.
  • References to Wikipedia are provided for further reading on various factorization algorithms, including those that are faster for specific forms of numbers.

Areas of Agreement / Disagreement

Participants express a range of views on the efficiency of different algorithms, with no consensus on a single best method for finding divisors of large numbers. The discussion remains open to various approaches and their respective complexities.

Contextual Notes

Some algorithms mentioned depend on specific mathematical properties and assumptions, such as the nature of the numbers being factored. The discussion does not resolve the effectiveness of each method for all cases.

Rishav sapahi
Messages
19
Reaction score
0
Like if number is too big then normal division is very much tedious task to do
 
Mathematics news on Phys.org
Rishav sapahi said:
Like if number is too big then normal division is very much tedious task to do

Which is why calculators and computers were invented.
 
SteamKing said:
Which is why calculators and computers were invented.
I am asking about the algorithm on which they works as I have come across an algorithm on fundamental theorem of arithmetic but it was not so much clear.
 
The simplest (but of course the slowest) is trial division. This can be done by checking the divisibility of N by all primes up to \sqrt N.
This is an exponential time algorithm (exponential in the number of bits).

There are faster algorithms based on Fermat's idea to find two perfect squares modulo N. If you have found that a^2 \equiv b^2 \left(\mod N\right) then \left(a+b\right)\left(a-b\right) \equiv 0 \left(\mod N\right) and this leads usually to a non trivial factorization of N by finding the gcd of (a+b), N and (a-b), N.

Most of the fast (as in subexponential, but still superpolynomial time) algorithms are based on Fermat's method, and differ on the method of finding the congruence of squares. The simplest is Dixon's Factorization method (see http://en.wikipedia.org/wiki/Dixon's_factorization_method). It looks for numbers such that a^2 \left(\mod N\right) is the product of small prime factors (called smooth numbers). When enough such numbers have been found, it is possible to find a subset of these numbers whose product is a perfect square (which is different that a^2). This gives a congruence of squares.

The Quadratic Sieve is an optimization of Dixon's factorization method which uses sieving in order to speed up the process of finding numbers such that a^2 is smooth modulo N. See http://en.wikipedia.org/wiki/Quadratic_sieve for more details.

Finally, the fastest currently known algorithm for factoring large integers is the General Number Field sieve (http://en.wikipedia.org/wiki/General_number_field_sieve). This one is complicated because it deals with different algebraic structures (called "number fields") and looks for factorizations in these fields instead. This turns out to be faster, and using correspondences between the integers and these number fields, we can obtain a factorization in the integers. I honestly don't know how this works though...

Wikipedia has a list of many factorization algorithms, some of which work only for numbers of special form (and are thus faster in these specific cases):
http://en.wikipedia.org/wiki/Integer_factorization
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 14 ·
Replies
14
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 8 ·
Replies
8
Views
5K
  • · Replies 0 ·
Replies
0
Views
3K