Any efficient method to find divisors of a number

  • Thread starter Rishav sapahi
  • Start date
  • Tags
    Method
In summary, there are various algorithms for factoring large numbers, each with different levels of efficiency. The simplest method is trial division, but there are faster algorithms such as Dixon's Factorization method, the Quadratic Sieve, and the General Number Field sieve. Each of these algorithms works by finding congruences of squares and using them to obtain factorizations of the original number. Some algorithms only work for numbers of special form, making them faster in those cases.
  • #1
Rishav sapahi
19
0
Like if number is too big then normal division is very much tedious task to do
 
Mathematics news on Phys.org
  • #2
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.
 
  • #3
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.
 
  • #4
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 [itex]\sqrt N[/itex].
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 [itex]a^2 \equiv b^2 \left(\mod N\right)[/itex] then [itex]\left(a+b\right)\left(a-b\right) \equiv 0 \left(\mod N\right)[/itex] 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 [itex]a^2 \left(\mod N\right) [/itex] 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 [itex]a^2[/itex]). 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 [itex]a^2 [/itex] 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
 
  • #5


There are several efficient methods for finding divisors of a number, especially if the number is too large for normal division to be a feasible option. One method is to use prime factorization, which involves breaking down the number into its prime factors and then finding all possible combinations of those factors. Another method is to use a computer program or online calculator that is specifically designed to find divisors of large numbers. These programs use algorithms that can quickly and accurately determine all divisors of a given number. Additionally, there are mathematical formulas and rules that can be applied to certain types of numbers (such as perfect numbers or triangular numbers) to find their divisors. Ultimately, the most efficient method will depend on the specific number in question and the resources available.
 

FAQ: Any efficient method to find divisors of a number

How do I find the divisors of a number?

To find the divisors of a number, you can use a simple method of starting from 1 and checking if it divides the given number without a remainder. If it does, then it is a divisor. Continue this process until you reach the given number. Another method is to factorize the number and use the prime factorization to find all possible combinations of divisors.

Is there a more efficient way to find divisors?

Yes, there are more efficient methods to find divisors. One example is using the square root method, where you only need to check for divisors up to the square root of the given number. This reduces the number of iterations needed and makes the process faster.

Can I find all the divisors of a large number?

Yes, you can find all the divisors of a large number using the methods mentioned above. However, for extremely large numbers, it may not be feasible to list all the divisors as it would require a significant amount of time and resources.

How do I know if a number is a divisor of another number?

A number is a divisor of another number if it divides the given number without a remainder. In other words, if you divide the given number by the potential divisor and the remainder is 0, then the number is a divisor.

Can I find the divisors of a decimal or a negative number?

Technically, any number can have divisors, including decimals and negative numbers. However, the process of finding divisors for these types of numbers may be more complex and may require different methods. It is best to specify the type of number when searching for divisors to ensure an accurate and efficient process.

Similar threads

Replies
10
Views
1K
Replies
7
Views
2K
Replies
1
Views
2K
Replies
5
Views
3K
Replies
3
Views
2K
Back
Top