![]() |
"Trivial" factorization algorithms
We've had several threads where someone posted a "new" factorization method that turned out to be an "old" method that was just not very well known. I even posted one of my own a year or so ago. I started wondering just how many different factorization methods are there?
First, define "trivial" to mean any factorization method that requires more than 100 years to factor a very large number (say 10,000,000 digits) using currently available computer capabilities on a single machine. I am using trivial in a mathematical sense to mean "not viable because of time constraints" rather than the semantic meaning of "having no value". If you want to post a method, please give a brief description, history if any, and either a link to further information or a book reference if available. Please note that a method should be able to prove that a given number is prime or composite. If it is factorable, the method should be able to generate all the possible prime factors given that the method is carried to its conclusion. As a special case, consider the Sieve of Eratosthenes. It easily proves that a given number is prime but requires some adapting to show the factors of numbers that are composite. Why is this of some importance? Well, it might just keep Bob Silverman from having to tell someone else that their new way to find factors is just an old "trivial" method thats been known for hundreds of years. Please don't squash this thread by posting something derogatory or inferring that it is "trivial". It will do something that is much needed on this board. The first one I'll post is to [b]do trial division by all positive primes less than or equal to the square root of the number to be factored[/b]. This method has been known since ancient times and for small numbers is relatively efficient. It does not take advantage of any speedup techniques so is totally inadequate for large numbers. Fusion :ermm: |
[QUOTE=Fusion_power]First, define "trivial" to mean any factorization method that requires more than 100 years to factor a very large number (say 10,000,000 digits) using currently available computer capabilities on a single machine. [/QUOTE]
Do you mean fully factor? Clearly p-1 factoring can take decades to completely factor a number, but I though that probability was significant. |
P-1 is a perfectly good candidate though it is one of the faster possible algorithms. P+1 is another candidate though its the complement of P-1. The statement "given that it is carried to its conclusion" does not mean you are actually going to run a computer for several years, just that the method would do the job if it were run.
Note that there are methods that find a few factors proving that a given number is composite. These methods should be posted with a note to that effect. Lucas-Lehmer is not a good candidate because it only does a primality test. It does not find factors. Fusion |
Fermat factoring
fermat factoring seems a good candidate
i won't explain it here because my math skills aren't any good... :redface: [url]http://mathworld.wolfram.com/FermatsFactorizationMethod.html[/url] btw: is it just me or the algorithm using difference between triangulars (see amateur's sugested prime sieve [url]http://mersenneforum.org/showthread.php?t=3345[/url]) resembles this? |
[QUOTE=jinacio]fermat factoring seems a good candidate
i won't explain it here because my math skills aren't any good... :redface: [url]http://mathworld.wolfram.com/FermatsFactorizationMethod.html[/url] btw: is it just me or the algorithm using difference between triangulars (see amateur's sugested prime sieve [url]http://mersenneforum.org/showthread.php?t=3345[/url]) resembles this?[/QUOTE] No it is not just you. The triangular factorization method is Fermat's method in disguise. I first met that one as a young teenager. I got a book titled "Numbers" from the public library. Inside were a bunch of relatively straightforward algorithms for "recreational number theory" (for want of a better term). I remember playing with it, factoring 6 or 8 digit numbers with pencil and paper, this being the days when electronic calculators were extremely expensive. I'll see if I can dig up full details of the book in question. I have fond memories of it. Paul |
[QUOTE=Fusion_power]First, define "trivial" to mean any factorization method that requires more than 100 years to factor a very large number (say 10,000,000 digits) using currently available computer capabilities on a single machine. I am using trivial in a mathematical sense to mean "not viable because of time constraints" rather than the semantic meaning of "having no value".[/QUOTE]In that case, all known methods of factorization are trivial.
Let us assume that you are prepared to devote a century on a single present-day machine to factoring a composite integer the prime factors of which have no special characteristics. The front-running algorithms will let you factor perhaps 170 digits by GNFS and 250 digits by SNFS. This estimate is very rough, not least because I haven't said what kind of machine you have. However, that's completely unimportant because even if the estimates are only half the correct size (which they most emphatically are not) they would still be completely insignificant in comparison with 10 million digits. Paul |
[QUOTE=Fusion_power]First, define "trivial" to mean any factorization method that requires more than 100 years to factor a very large number (say 10,000,000 digits) using currently available computer capabilities on a single machine. I am using trivial in a mathematical sense to mean "not viable because of time constraints" rather than the semantic meaning of "having no value".
[/QUOTE]Fusion, might "slow" be closer to what you have in mind than "trivial"? |
Slow vs trivial?
Well, in this case, they mean about the same thing. What I would like to see is a very real and very relevant discussion of all the different methods of factoring a number. Its perfectly valid to say that all current factoring methods are trivial given that none of them can possibly exceed 1000 digit numbers in a century of runtime. So far, I have seen the following factoring methods mentioned. 1. ECM - elliptic curve 2. SNFS 3. GNFS 4. Fermat's difference of squares method. 5. Triangular factoring (a variant of Fermat's method) 6. Amateur's sum of 2 consecutive numbers method (a form of triangular factoring) 7. The method I showed based on expressing a number as a square. (I don't know which method this is most like but it has some similarities to ecm) Please contribute something to this discussion. Either comments about the methods that have been mentioned or about a new method. Fusion |
:ermm:
Dixon's method ([url]http://mathworld.wolfram.com/DixonsFactorizationMethod.html[/url]), Pollard's Rho method (not P-1) Multi-polynomial Quadratic Sieve or MPQS i don't have much info on these these, but i think none of them spills out all possible factors. |
I've always used trivial to designate the theory behind an algorithm, not it's speed or effectiveness.
Trial-division is trivial because it's the most obvious thing to do, not because it's slow. An algorithm could be completely slow and useless but be based upon some intricate theory. |
maybe we should replace 'trivial' by 'sucky', and maybe we should reduce 10M, since 10M is *hard* and not *many* people regularly try to factor 10M+ integers all by themselves. (I use GIMPS and I've put zero effort into being able to do that.)
I think even 500-1,000 digits can be hard, but I think it's a good range for discussion. (I would have trouble putting two cents in for 10M digits.) |
| All times are UTC. The time now is 01:21. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.