<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7112657156387828962</id><updated>2012-02-16T02:49:48.266-08:00</updated><title type='text'>Factorization</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default?start-index=101&amp;max-results=100'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>138</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8195273067631210912</id><published>2011-03-15T04:44:00.000-07:00</published><updated>2011-03-15T04:45:07.876-07:00</updated><title type='text'>Or this?</title><content type='html'>http://groups.google.com/group/sci.math/browse_frm/thread/bb9eb35568ce6026/92dc3f61562b5755?lnk=gst&amp;q=suggestion+factorization#92dc3f61562b5755&lt;br /&gt;&lt;br /&gt;http://groups.google.com/group/sci.math/browse_frm/thread/417c69f4c2ff5f26#&lt;br /&gt;&lt;br /&gt;J&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8195273067631210912?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8195273067631210912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8195273067631210912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8195273067631210912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8195273067631210912'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2011/03/or-this.html' title='Or this?'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8251780249708071715</id><published>2009-06-08T08:41:00.000-07:00</published><updated>2009-06-08T08:44:46.140-07:00</updated><title type='text'>Finalized(?!) (GMP-)WE algorithm code</title><content type='html'>/* Factoring general integers with WE method using random base(s).&lt;br /&gt; Author:  James Wanless (c) 2000-9&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;#include &lt;iostream.h&gt;&lt;br /&gt;#include &lt;gmpxx.h&gt;&lt;br /&gt;#include &lt;gmp.h&gt;&lt;br /&gt;&lt;br /&gt;gmp_randclass r (gmp_randinit_default);&lt;br /&gt;&lt;br /&gt;mpz_class rand2(long bits)&lt;br /&gt;/* returns random bits-bit integer */&lt;br /&gt;{&lt;br /&gt; return r.get_z_bits(bits);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int Rabin_Miller(mpz_class n)&lt;br /&gt;/* given an integer n &gt;= 3 returns 0 composite, 1 probably prime */&lt;br /&gt;{&lt;br /&gt; return mpz_probab_prime_p(n.get_mpz_t(), 10);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;mpz_class gcd(mpz_class a, mpz_class b)&lt;br /&gt;/* returns greatest common divisor of a and b */&lt;br /&gt;{&lt;br /&gt; mpz_t temp;&lt;br /&gt; mpz_init(temp);&lt;br /&gt; mpz_gcd(temp, a.get_mpz_t(), b.get_mpz_t());&lt;br /&gt; mpz_class temp_class(temp);&lt;br /&gt; mpz_clear(temp);&lt;br /&gt; return temp_class;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;mpz_class exp_mod(mpz_class x, mpz_class b, mpz_class n)&lt;br /&gt;/* returns x ^ b mod n */&lt;br /&gt;{&lt;br /&gt; mpz_t temp;&lt;br /&gt; mpz_init (temp);&lt;br /&gt; mpz_powm(temp, x.get_mpz_t(), b.get_mpz_t(), n.get_mpz_t());&lt;br /&gt; mpz_class temp_class(temp);&lt;br /&gt; mpz_clear (temp);&lt;br /&gt; return temp_class;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;bool Wanless (mpz_class n)&lt;br /&gt;{&lt;br /&gt; mpz_class basestested = 0;&lt;br /&gt; mpz_class T = 1;&lt;br /&gt; mpz_class b = 1;&lt;br /&gt; mpz_class A = 2;&lt;br /&gt; mpz_class prodA = 2;&lt;br /&gt; mpz_class wanless = 2;&lt;br /&gt; long nbits = 1;&lt;br /&gt; &lt;br /&gt; if (Rabin_Miller(n)) {&lt;br /&gt;  cout &lt;&lt; n &lt;&lt; "\n";&lt;br /&gt;  fflush(stdout);&lt;br /&gt;  return true;&lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; if (n &lt; 2)&lt;br /&gt;  return false;&lt;br /&gt; &lt;br /&gt; if (n % 2 == 0) {&lt;br /&gt;  cout &lt;&lt; "2\n";&lt;br /&gt;  fflush(stdout);&lt;br /&gt;  return Wanless(n / 2);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; while (wanless &lt; n) {&lt;br /&gt;  wanless *= 2;&lt;br /&gt;  nbits ++;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; while (T == 1 || T == n) {&lt;br /&gt;  basestested++;&lt;br /&gt;  cout &lt;&lt; "base#" &lt;&lt; basestested &lt;&lt; "\r";&lt;br /&gt;  fflush(stdout);&lt;br /&gt;&lt;br /&gt;  prodA = 1;&lt;br /&gt;  for (long i = 0; i &lt; nbits; i++) {&lt;br /&gt;   A = rand2(nbits);&lt;br /&gt;   prodA *= A;&lt;br /&gt;   prodA = prodA % n;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  b = exp_mod(prodA, wanless, n);&lt;br /&gt;  T = gcd(n, exp_mod(b, n, n) - b);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; if (T &gt; 1 &amp;&amp; T &lt; n) {&lt;br /&gt;  cout &lt;&lt; "\n" &lt;&lt; T &lt;&lt; "\t[prodA=" &lt;&lt; prodA &lt;&lt; "]\n";&lt;br /&gt;  fflush(stdout);&lt;br /&gt;  Wanless(n / T);&lt;br /&gt; }&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt; return (false);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt; mpz_class N;&lt;br /&gt; &lt;br /&gt; for (;;) {&lt;br /&gt;  cout &lt;&lt; "number to be tested or 0 to quit:\n";&lt;br /&gt;  cin &gt;&gt; N;&lt;br /&gt;  if (N == 0) break;&lt;br /&gt;  Wanless(N);&lt;br /&gt; }&lt;br /&gt; return 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8251780249708071715?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8251780249708071715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8251780249708071715' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8251780249708071715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8251780249708071715'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2009/06/finalized-gmp-we-algorithm-code.html' title='Finalized(?!) (GMP-)WE algorithm code'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5310587363421083503</id><published>2009-02-05T02:16:00.000-08:00</published><updated>2009-02-05T02:18:45.982-08:00</updated><title type='text'>Factorization Database</title><content type='html'>The following is a really cool site!&lt;br /&gt;&lt;a href="http://factorization.ath.cx/search.php"&gt;http://factorization.ath.cx/search.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5310587363421083503?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5310587363421083503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5310587363421083503' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5310587363421083503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5310587363421083503'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2009/02/factorization-database.html' title='Factorization Database'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2324642677220149607</id><published>2009-02-02T13:34:00.000-08:00</published><updated>2009-02-02T13:37:01.170-08:00</updated><title type='text'>CRTfac3</title><content type='html'>I wonder whether (quite simply) this was what I was aiming at...:&lt;br /&gt;(copyright 2009-02-02 JGW, again, just-in-case :)&lt;br /&gt;&lt;br /&gt;import java.math.BigInteger;&lt;br /&gt;import java.util.Random;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class CRTfac3 {&lt;br /&gt; static BigInteger zero = new BigInteger("0");&lt;br /&gt; static BigInteger one = new BigInteger("1");&lt;br /&gt; static BigInteger two = new BigInteger("2"); &lt;br /&gt; static BigInteger thousand = new BigInteger("1000"); &lt;br /&gt;&lt;br /&gt; static BigInteger n = new BigInteger("0");&lt;br /&gt; static String s;&lt;br /&gt;&lt;br /&gt; static int olds1 = 0;&lt;br /&gt; static int s1 = 0;&lt;br /&gt;&lt;br /&gt; public static void main (String args[])&lt;br /&gt;  throws java.io.IOException {&lt;br /&gt;&lt;br /&gt;  CRTfac3 CRTfac3inst = new CRTfac3();&lt;br /&gt;&lt;br /&gt;  char c;&lt;br /&gt;  String sInput;&lt;br /&gt;&lt;br /&gt;  Date d;&lt;br /&gt;  long starttime;&lt;br /&gt;  long finishtime;&lt;br /&gt;  long duration;&lt;br /&gt;&lt;br /&gt;  while (true) {&lt;br /&gt;   StringBuffer sbInput = new StringBuffer("");&lt;br /&gt;&lt;br /&gt;   while ((c = (char)System.in.read()) != '\n' &amp;&amp; c != '\r')&lt;br /&gt;    sbInput.append(c);&lt;br /&gt;   System.in.read();&lt;br /&gt;   sInput = sbInput.toString().trim();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   if (sInput.charAt(0) == 'f' || sInput.charAt(0) == 'F') {&lt;br /&gt;    s = sInput.substring(1).trim();&lt;br /&gt;&lt;br /&gt;    s1 = 0;&lt;br /&gt;    olds1 = 0;&lt;br /&gt;    n = CRTfac3inst.eval(s);&lt;br /&gt;&lt;br /&gt;    System.out.println('[' + n.toString() + ']');&lt;br /&gt;   }&lt;br /&gt;   else {&lt;br /&gt;    n = new BigInteger(sInput);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   d = new Date();&lt;br /&gt;   starttime = d.getTime();&lt;br /&gt;&lt;br /&gt;   CRTfac3inst.factorize(n);&lt;br /&gt;   &lt;br /&gt;   d = new Date();&lt;br /&gt;   finishtime = d.getTime();&lt;br /&gt;&lt;br /&gt;   duration = (finishtime-starttime)/1000;&lt;br /&gt;&lt;br /&gt;   System.out.println("duration: " + duration + " seconds");&lt;br /&gt;&lt;br /&gt;   System.out.println();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public boolean factorize(BigInteger n) {&lt;br /&gt;  boolean prime = false;&lt;br /&gt;  BigInteger a = new BigInteger("1");&lt;br /&gt;  BigInteger b = new BigInteger("1");&lt;br /&gt;  BigInteger T = new BigInteger("1");&lt;br /&gt;&lt;br /&gt;  if (n.isProbablePrime(1000)) {&lt;br /&gt;   prime = true;&lt;br /&gt;   System.out.println(n);&lt;br /&gt;   return prime;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  while (T.compareTo(one) == 0 || T.compareTo(n) == 0) {&lt;br /&gt;   T = n.gcd(b);&lt;br /&gt;   if (a.mod(thousand).compareTo(zero) == 0)&lt;br /&gt;    System.out.print("a = " + a.toString() + '\r');&lt;br /&gt;   a = a.add(one);&lt;br /&gt;   b = b.multiply(a).mod(n);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  if (T.compareTo(one) &gt; 0 &amp;&amp; T.compareTo(n) &lt; 0) {&lt;br /&gt;   factorize(T);&lt;br /&gt;   factorize(n.divide(T));&lt;br /&gt;  }&lt;br /&gt;  else {&lt;br /&gt;   prime = false;&lt;br /&gt;   System.out.println("composite" +'\t' + n);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return prime;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; public BigInteger evalRand(char op, BigInteger oldn) {&lt;br /&gt;  BigInteger n = new BigInteger("1");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case 'r':&lt;br /&gt;  case 'R':&lt;br /&gt;   Random r = new Random();&lt;br /&gt;&lt;br /&gt;   n = new BigInteger(oldn.intValue(), r);&lt;br /&gt;   break;&lt;br /&gt;&lt;br /&gt;  default:&lt;br /&gt;   n = oldn;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalFact(BigInteger oldn, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("1");&lt;br /&gt;  BigInteger i = new BigInteger("1");&lt;br /&gt;  BigInteger j = new BigInteger("1");&lt;br /&gt;  boolean prime = true;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '!':&lt;br /&gt;   for (i = one; i.compareTo(oldn) &lt;= 0; i = i.add(one))&lt;br /&gt;    n = n.multiply(i);&lt;br /&gt;   break;&lt;br /&gt;&lt;br /&gt;  case '#':&lt;br /&gt;   for (i = one; i.compareTo(oldn) &lt;= 0; i = i.add(one)) {&lt;br /&gt;    prime = true;&lt;br /&gt;    for (j = two; (prime == true) &amp;&amp; (j.multiply(j).compareTo(i) &lt;= 0); j = j.add(one))&lt;br /&gt;     if (i.remainder(j).compareTo(zero) == 0)&lt;br /&gt;      prime = false;&lt;br /&gt;    if (prime == true)&lt;br /&gt;     n = n.multiply(i);&lt;br /&gt;   }&lt;br /&gt;   break;&lt;br /&gt;&lt;br /&gt;  default:&lt;br /&gt;   n = oldn;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalPower(BigInteger oldn, BigInteger n1, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '^':&lt;br /&gt;   n = oldn.pow(n1.intValue());&lt;br /&gt;   break;&lt;br /&gt;  default:&lt;br /&gt;   n = n1;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalProduct(BigInteger oldn, BigInteger n1, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '*':&lt;br /&gt;   n = oldn.multiply(n1);&lt;br /&gt;   break;&lt;br /&gt;  case '/':&lt;br /&gt;   n = oldn.divide(n1);&lt;br /&gt;   break;&lt;br /&gt;  case '%':&lt;br /&gt;   n = oldn.remainder(n1);&lt;br /&gt;   break;&lt;br /&gt;  default:&lt;br /&gt;   n = n1;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalSum(BigInteger oldn, BigInteger n1, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '+':&lt;br /&gt;   n = oldn.add(n1);&lt;br /&gt;   break;&lt;br /&gt;  case '-':&lt;br /&gt;   n = oldn.subtract(n1);&lt;br /&gt;   break;&lt;br /&gt;  default:&lt;br /&gt;   n = n1;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger eval(String s) {&lt;br /&gt;  BigInteger oldn0 = new BigInteger("0");&lt;br /&gt;  BigInteger oldn1 = new BigInteger("0");&lt;br /&gt;  BigInteger oldn2 = new BigInteger("0");&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  char oldop0 = 0;&lt;br /&gt;  char oldop1 = 0;&lt;br /&gt;  char oldop2 = 0;&lt;br /&gt;  char op = 0;&lt;br /&gt;&lt;br /&gt;  while (s1 &lt; s.length()) {&lt;br /&gt;   switch (s.charAt(s1)) {&lt;br /&gt;    case '(':&lt;br /&gt;    case '[':&lt;br /&gt;    case '{':&lt;br /&gt;     s1++;&lt;br /&gt;     n = eval(s);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '0':&lt;br /&gt;    case '1':&lt;br /&gt;    case '2':&lt;br /&gt;    case '3':&lt;br /&gt;    case '4':&lt;br /&gt;    case '5':&lt;br /&gt;    case '6':&lt;br /&gt;    case '7':&lt;br /&gt;    case '8':&lt;br /&gt;    case '9':&lt;br /&gt;     n = readNum(s);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    default:&lt;br /&gt;     break;&lt;br /&gt;   }&lt;br /&gt;   if (s1 &lt; s.length()) {&lt;br /&gt;    switch (s.charAt(s1)) {&lt;br /&gt;&lt;br /&gt;    case ')':&lt;br /&gt;    case ']':&lt;br /&gt;    case '}':&lt;br /&gt;    case '!':&lt;br /&gt;    case '#':&lt;br /&gt;    case 'r':&lt;br /&gt;    case 'R':&lt;br /&gt;    case '^':&lt;br /&gt;    case '*':&lt;br /&gt;    case '/':&lt;br /&gt;    case '%':&lt;br /&gt;    case '+':&lt;br /&gt;    case '-':&lt;br /&gt;     op = s.charAt(s1);&lt;br /&gt;     s1++;&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    default:&lt;br /&gt;     break;&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;    op = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   switch (op) {&lt;br /&gt;    case 0:&lt;br /&gt;    case ')':&lt;br /&gt;    case ']':&lt;br /&gt;    case '}':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     n = evalProduct(oldn1, n, oldop1);&lt;br /&gt;     n = evalSum(oldn0, n, oldop0);&lt;br /&gt;     return n;&lt;br /&gt;&lt;br /&gt;    case '!':&lt;br /&gt;    case '#':&lt;br /&gt;     n = evalFact(n, op);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case 'r':&lt;br /&gt;    case 'R':&lt;br /&gt;     n = readNum(s);&lt;br /&gt;     n = evalRand(op, n);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '^':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     oldn2 = n;&lt;br /&gt;     oldop2 = op;&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '*':&lt;br /&gt;    case '/':&lt;br /&gt;    case '%':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     oldop2 = 0;&lt;br /&gt;     n = evalProduct(oldn1, n, oldop1);&lt;br /&gt;     oldn1 = n;&lt;br /&gt;     oldop1 = op;&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '+':&lt;br /&gt;    case '-':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     oldop2 = 0;&lt;br /&gt;     n = evalProduct(oldn1, n, oldop1);&lt;br /&gt;     oldop1 = 0;&lt;br /&gt;     n = evalSum(oldn0, n, oldop0);&lt;br /&gt;     oldn0 = n;&lt;br /&gt;     oldop0 = op;&lt;br /&gt;     break;&lt;br /&gt;    default:&lt;br /&gt;     break;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger readNum(String s) {&lt;br /&gt;  olds1 = s1;&lt;br /&gt;  while (s1 &lt; s.length() &amp;&amp; Character.isDigit(s.charAt(s1)))&lt;br /&gt;   s1++;&lt;br /&gt;  n = new BigInteger(s.substring(olds1, s1));&lt;br /&gt;&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;bear...@gmail.com wrote:&lt;br /&gt;&gt; Is it possible to use CRT to factor integers - or is this in effect&lt;br /&gt;&gt; what modern sieving algorithms already do anyway?&lt;br /&gt;&gt; J&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2324642677220149607?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2324642677220149607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2324642677220149607' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2324642677220149607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2324642677220149607'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2009/02/crtfac3.html' title='CRTfac3'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-567021551405566650</id><published>2008-03-12T15:50:00.000-07:00</published><updated>2008-03-12T16:00:30.004-07:00</updated><title type='text'>YAFA (c) JGW 2008</title><content type='html'>YAFA=Yet another factorization algorithm :)&lt;br /&gt;I don't know whether this is any good (I _think_ it's new) - comments welcome...&lt;br /&gt;Suppose we wish to factor N.&lt;br /&gt;Write N=x^(2^n)-1, s.t. x=(N+1)^(2^-n)&lt;br /&gt;Then N=(x-1)(x+1)(x^2+1)(x^4+1)...(x^2^(n-1)+1)&lt;br /&gt;Start w/ n=1, and evaluate all the 2^n combinations of products of brackets above, testing for exact division into N as you go.&lt;br /&gt;After all unsuccessful 2^n attempts, increment n, and repeat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-567021551405566650?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/567021551405566650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=567021551405566650' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/567021551405566650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/567021551405566650'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/03/yafa-c-jgw-2008.html' title='YAFA (c) JGW 2008'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8110335738729961985</id><published>2008-01-24T09:04:00.000-08:00</published><updated>2008-01-24T09:05:10.628-08:00</updated><title type='text'>(M+2)1257787</title><content type='html'>Mersenneplustwo project news:&lt;br /&gt;Following up the recent find of the 8-digit factor of (M+2)1257787 by random-based WEP (factorize3), I also confirmed this result with "sequential" WEP (factorize2).&lt;br /&gt;The factor is found on the first attempted base after the factor of 3 comes out:&lt;br /&gt;"&lt;br /&gt;[james@localhost wec]$ time ./factorize2.gmp4.2.1 -Pp1257787 -a0&lt;br /&gt;a= 5031149      factor=3&lt;br /&gt;a= 7546723      factor=20124593&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;real    16844m25.553s&lt;br /&gt;user    15836m58.317s&lt;br /&gt;sys     363m38.512s&lt;br /&gt;&lt;br /&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8110335738729961985?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8110335738729961985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8110335738729961985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8110335738729961985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8110335738729961985'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/m21257787.html' title='(M+2)1257787'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-9163198182475645586</id><published>2008-01-24T08:56:00.000-08:00</published><updated>2008-01-24T08:57:23.690-08:00</updated><title type='text'>FermatSearch</title><content type='html'>The FERMATSEARCH.ORG (searching for factors of Fermat numbers) project has a new and improved website!&lt;br /&gt;&lt;a href="http://www.fermatsearch.org/index.html"&gt;http://www.fermatsearch.org/index.html&lt;/a&gt;&lt;br /&gt;Its most recently found factor (August 21, 2007) was:&lt;br /&gt;"485.2^338297+1 divides F338295"&lt;br /&gt;Note that for really huge Fermats like this, the only efficient method of searching for factors is modular trial-division. However there is also some ECM work going on on the smaller Fermats... It will be interesting to see cooperation with the new Primenet (factorization) server?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-9163198182475645586?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/9163198182475645586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=9163198182475645586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/9163198182475645586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/9163198182475645586'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/fermatsearch.html' title='FermatSearch'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4118084085693022408</id><published>2008-01-18T23:45:00.000-08:00</published><updated>2008-01-19T00:08:52.606-08:00</updated><title type='text'>PrimeNet v5</title><content type='html'>Here's an exciting bit of news:&lt;br /&gt;It looks like v5 of the GIMPS server will have built-in automatic reporting of factorization effort on Mersenne (and Fermat) numbers. As with the prime search itself, George Woltman and Scott Kurowski seem to have done a great job!&lt;br /&gt;&lt;a href="http://v5www.mersenne.org/report_ECM/"&gt;http://v5www.mersenne.org/report_ECM/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4118084085693022408?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4118084085693022408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4118084085693022408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4118084085693022408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4118084085693022408'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/primenet-v5.html' title='PrimeNet v5'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7838066133235696087</id><published>2008-01-15T05:31:00.000-08:00</published><updated>2008-01-20T19:13:30.643-08:00</updated><title type='text'>Bernoulli and Euler Numbers</title><content type='html'>Some more recent news culled from the mersenneforum :)&lt;br /&gt;&lt;a href="http://mersenneforum.org/showthread.php?t=9841"&gt;http://mersenneforum.org/showthread.php?t=9841&lt;/a&gt;&lt;br /&gt;advertising the recent revival of a couple of (related) factorization projects I had previously overlooked:&lt;br /&gt;Sam Wagstaff (of Cunningham project fame) leads an initiative to find factors of Bernoulli, and Euler composites at:&lt;br /&gt;&lt;a href="http://homes.cerias.purdue.edu/~ssw/bernoulli/index.html"&gt;http://homes.cerias.purdue.edu/~ssw/bernoulli/index.html&lt;/a&gt;&lt;br /&gt;Note that Bruce Dodson has already found some good-sized ECM factors from these targets, presumably as a diversion from the main Cunningham project!&lt;br /&gt;Some links describing these numbers:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_number"&gt;http://en.wikipedia.org/wiki/Bernoulli_number&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Euler_number"&gt;http://en.wikipedia.org/wiki/Euler_number&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7838066133235696087?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7838066133235696087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7838066133235696087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7838066133235696087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7838066133235696087'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/bernoulli-and-euler-numbers.html' title='Bernoulli and Euler Numbers'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3475748392530018045</id><published>2008-01-15T05:18:00.001-08:00</published><updated>2008-01-15T05:18:30.464-08:00</updated><title type='text'>GMP-EECM</title><content type='html'>Bernstein, Birkner, Lange and Peters present GMP-EECM, a variant of GMP-ECM (and developed from it) but using Edwards curves, rather than the more standard Montgomery curves of regular GMP-ECM.&lt;br /&gt;&lt;a href="http://cr.yp.to/papers.html#eecm"&gt;http://cr.yp.to/papers.html#eecm&lt;/a&gt;&lt;br /&gt;In one of their tests, this reduced the stage 1 time from 2448mS to 2276mS.&lt;br /&gt;Alex Kruppa has stated that this improvement will also be incorporated into some future version of GMP-ECM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3475748392530018045?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3475748392530018045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3475748392530018045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3475748392530018045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3475748392530018045'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/gmp-eecm.html' title='GMP-EECM'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3863037925267448904</id><published>2008-01-13T12:12:00.001-08:00</published><updated>2008-01-13T12:12:59.118-08:00</updated><title type='text'>Msieve v1.33</title><content type='html'>Msieve v1.33 now available:&lt;br /&gt;Announcement at:&lt;br /&gt;&lt;a href="http://mersenneforum.org/showpost.php?p=122776&amp;postcount=402"&gt;http://mersenneforum.org/showpost.php?p=122776&amp;postcount=402&lt;/a&gt;&lt;br /&gt;Download from:&lt;br /&gt;&lt;a href="http://www.boo.net/~jasonp/qs.html"&gt;http://www.boo.net/~jasonp/qs.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3863037925267448904?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3863037925267448904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3863037925267448904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3863037925267448904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3863037925267448904'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/msieve-v133.html' title='Msieve v1.33'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-843652434666702927</id><published>2008-01-08T09:15:00.000-08:00</published><updated>2008-01-08T09:16:13.465-08:00</updated><title type='text'>Harpertown</title><content type='html'>Intel officially announces availability of its new "Penryn" chips.&lt;br /&gt;&lt;a href="http://www.bit-tech.net/news/2008/01/07/intel_announces_16_new_45nm_cpus_at_ces/1"&gt;http://www.bit-tech.net/news/2008/01/07/intel_announces_16_new_45nm_cpus_at_ces/1&lt;/a&gt;&lt;br /&gt;Apple has already incorporated several server versions, including quad-cores, into the Mac Pro line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-843652434666702927?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/843652434666702927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=843652434666702927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/843652434666702927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/843652434666702927'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/harpertown.html' title='Harpertown'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-50283670054162579</id><published>2008-01-04T07:11:00.000-08:00</published><updated>2008-12-12T23:21:44.987-08:00</updated><title type='text'>Eric Landquist</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gnz1PXGiFck/R36cQ62tDbI/AAAAAAAAACc/ggVBQsQ92Vk/s1600-h/150px-1975rsox.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Gnz1PXGiFck/R36cQ62tDbI/AAAAAAAAACc/ggVBQsQ92Vk/s320/150px-1975rsox.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5151726838248967602" /&gt;&lt;/a&gt;&lt;br /&gt;[picture from Wikipedia - copyright Just H, creative commons license]&lt;br /&gt;&lt;br /&gt;Here is a link to Eric Landquist's paper on the NFS:&lt;br /&gt;&lt;a href="http://www.math.uiuc.edu/~landquis/nfsieve.pdf"&gt;http://www.math.uiuc.edu/~landquis/nfsieve.pdf&lt;/a&gt;&lt;br /&gt;Quote from the above:&lt;br /&gt;"At least one author [17] believes that there &lt;br /&gt;are faster methods out there. It’s my life-long dream to find one. I also &lt;br /&gt;hope to see the Red Sox win a World Series."&lt;br /&gt;Well, the Red Sox have won _two_ World Series since the paper was published (2002) - though personally I am an Astros fan! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-50283670054162579?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/50283670054162579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=50283670054162579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/50283670054162579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/50283670054162579'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/eric-landquist.html' title='Eric Landquist'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gnz1PXGiFck/R36cQ62tDbI/AAAAAAAAACc/ggVBQsQ92Vk/s72-c/150px-1975rsox.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3565757946365482203</id><published>2008-01-01T00:30:00.000-08:00</published><updated>2008-01-01T00:31:15.296-08:00</updated><title type='text'>Frequency of Posts 2</title><content type='html'>Having made it to the New Year ( :) ), I expect the frequency of my posts to drop off somewhat, as I'm now running out of useful things to say...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3565757946365482203?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3565757946365482203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3565757946365482203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3565757946365482203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3565757946365482203'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/frequency-of-posts-2.html' title='Frequency of Posts 2'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3156338335167312751</id><published>2008-01-01T00:02:00.000-08:00</published><updated>2008-01-01T00:03:25.036-08:00</updated><title type='text'>M2008</title><content type='html'>To celebrate New Year 2008, for the past few days I have been factorizing M2008.&lt;br /&gt;Here are the results:&lt;br /&gt;ibu:~/math james$ time java superfac9&lt;br /&gt;f2^2008-1&lt;br /&gt;&lt;br /&gt;[29392145799020915820360529950148658790971333173470597132227654062739616291644680034730482849702560509912216694758079047000246245398094216484503842717866321546017277221199943680176327461949451487085805309456252478664093558693475421170513158666359386616551679118889574095089825179039567782281258040824405166424107240700021377434209148110825999078639302784109824695476896212613634081852488010690884578129204889342821483040517575643751434792922414912394467695078935531662069192598956042024980981047457429185377388949433859975257289323374605954282310600673952044911495373010647749329399156163119321894151520255]&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  3&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  5&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  17&lt;br /&gt;brute...            &lt;br /&gt;brutep:  503&lt;br /&gt;wanless...          &lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 54217&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 238451&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 178230287214063289511&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 61676882198695257501367&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 12070396178249893039969681&lt;br /&gt;aprtcle: &lt;br /&gt;5058345723951854688505665428846313806490903121677364358901199128608233&lt;br /&gt;wanless...          &lt;br /&gt;brute...            &lt;br /&gt;aprtcle: 5021&lt;br /&gt;ecm...              &lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 1972386557777&lt;br /&gt;aprtcle: 1912621&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 57762875981&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 38508212572597&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 45063180240128066017730357&lt;br /&gt;siqs...             &lt;br /&gt;aprtcle: 15992518154179475674328213556857438690614816129&lt;br /&gt;aprtcle: 86245368961389419078481015822433&lt;br /&gt;aprtcle: &lt;br /&gt;10084786891164868903044000461741193511166162933699139834764709537603304010587634094053631800618313958847949862753441381884114308571221779233867837717363364521350181435128687986278658451823408133532192171438161388219841827075198840055685217831601941566655243743704980863680404547437764128787958275830001&lt;br /&gt;duration: 40323 seconds&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3156338335167312751?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3156338335167312751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3156338335167312751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3156338335167312751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3156338335167312751'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2008/01/m2008.html' title='M2008'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5978261901595171603</id><published>2007-12-31T00:36:00.001-08:00</published><updated>2007-12-31T00:36:39.842-08:00</updated><title type='text'>Arjen Bot</title><content type='html'>Also there is Arjen Bot's page of factorizations of 2^n+1&lt;br /&gt;&lt;a href="http://www.euronet.nl/users/bota/medium-p-odd.txt"&gt;http://www.euronet.nl/users/bota/medium-p-odd.txt&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5978261901595171603?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5978261901595171603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5978261901595171603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5978261901595171603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5978261901595171603'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/arjen-bot.html' title='Arjen Bot'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2160818213423795416</id><published>2007-12-30T01:51:00.001-08:00</published><updated>2007-12-30T01:51:47.975-08:00</updated><title type='text'>Home Primes Search</title><content type='html'>Let me introduce another factorization project, the Home Primes Search:&lt;br /&gt;&lt;a href="http://www.mersennewiki.org/index.php/Home_Prime"&gt;http://www.mersennewiki.org/index.php/Home_Prime&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mersennewiki.org/index.php/Home_Primes_Search"&gt;http://www.mersennewiki.org/index.php/Home_Primes_Search&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2160818213423795416?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2160818213423795416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2160818213423795416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2160818213423795416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2160818213423795416'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/home-primes-search.html' title='Home Primes Search'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6799352888365171922</id><published>2007-12-29T00:43:00.000-08:00</published><updated>2007-12-29T00:44:11.773-08:00</updated><title type='text'>NFSNET</title><content type='html'>Here is a link to the NFSNET project, a distributed attack on Cunningham Project targets using the Number Field Sieve:&lt;br /&gt;&lt;a href="http://www.nfsnet.org/"&gt;http://www.nfsnet.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6799352888365171922?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6799352888365171922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6799352888365171922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6799352888365171922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6799352888365171922'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/nfsnet.html' title='NFSNET'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1722520158156649643</id><published>2007-12-28T00:55:00.001-08:00</published><updated>2007-12-28T00:55:55.163-08:00</updated><title type='text'>P49_101_87</title><content type='html'>I can't resist mentioning a fun result I had recently for the XYYXF project:&lt;br /&gt;&lt;a href="http://xyyxf.at.tut.by/records.html#ecm"&gt;http://xyyxf.at.tut.by/records.html#ecm&lt;/a&gt;&lt;br /&gt;[There I am currently in tenth place! :)]&lt;br /&gt;I can certainly recommend the XYYXF ECMNet server as a slick and easy way to find interesting factors for that project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1722520158156649643?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1722520158156649643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1722520158156649643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1722520158156649643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1722520158156649643'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/p4910187.html' title='P49_101_87'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2601313407654292251</id><published>2007-12-27T00:42:00.001-08:00</published><updated>2007-12-27T00:42:57.088-08:00</updated><title type='text'>WE on Carmichaels</title><content type='html'>When running WE on Carmichaels, clearly the algorithm will never terminate.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Carmichael_numbers"&gt;http://en.wikipedia.org/wiki/Carmichael_numbers&lt;/a&gt;&lt;br /&gt;However, there is a simple workaround, by simply multiplying the input number to be factored (if Carmichael) by a suitable larg(ish) prime, eg a Mersenne. This will normally eject the factors, additionally, as required.&lt;br /&gt;Here are some examples:&lt;br /&gt;1)&lt;br /&gt;tiggatoo:~/math/we james$ java we2tr2&lt;br /&gt;f168003672409*(2^127-1)&lt;br /&gt;&lt;br /&gt;[28584343649372241809274301558307881708368828786343]&lt;br /&gt;base#72&lt;br /&gt;elapsed=0s      factor=6073     A=13044086312830013543739988769&lt;br /&gt;base#70&lt;br /&gt;elapsed=0s      factor=3037     A=860763419187377590694240501658&lt;br /&gt;base#230&lt;br /&gt;elapsed=1s      factor=9109     A=771019052198021707484273222802&lt;br /&gt;170141183460469231731687303715884105727&lt;br /&gt;duration: 1 seconds&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2)&lt;br /&gt;tiggatoo:~/math/we james$ java we2tr2&lt;br /&gt;f173032371289*(2^89-1)         &lt;br /&gt;&lt;br /&gt;[107101850255573582977951074701018631079]&lt;br /&gt;base#43&lt;br /&gt;elapsed=0s      factor=3067     A=1236330343540696294158885383112&lt;br /&gt;base#149&lt;br /&gt;elapsed=0s      factor=6133     A=559525871748815289923955370298&lt;br /&gt;base#758&lt;br /&gt;elapsed=1s      factor=9199     A=194689393018084379227390724801&lt;br /&gt;618970019642690137449562111&lt;br /&gt;duration: 1 seconds&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3)&lt;br /&gt;tiggatoo:~/math/we james$ java we2tr2&lt;br /&gt;f973694665856161*(2^127-1)&lt;br /&gt;&lt;br /&gt;[165665562777913375106491436985024163141370898298334047]&lt;br /&gt;base#3&lt;br /&gt;elapsed=0s      factor=6841     A=1245204978926759694403655173839&lt;br /&gt;base#0&lt;br /&gt;elapsed=0s      factor=2281     A=1024632434440788626941999868632&lt;br /&gt;base#7&lt;br /&gt;elapsed=0s      factor=4561     A=457244767350940464517786915322&lt;br /&gt;base#12&lt;br /&gt;elapsed=0s      factor=13681    A=85779304638188382542657979233&lt;br /&gt;170141183460469231731687303715884105727&lt;br /&gt;duration: 0 seconds&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And here, for the record/or in case anyone wants to confirm results above, is the Java source code to we2tr2 (Copyright JGW ~ 2000):&lt;br /&gt;&lt;br /&gt;import java.math.BigInteger;&lt;br /&gt;import java.util.Random;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class we2tr2 {&lt;br /&gt; static BigInteger zero = new BigInteger("0");&lt;br /&gt; static BigInteger one = new BigInteger("1");&lt;br /&gt; static BigInteger two = new BigInteger("2"); &lt;br /&gt; static BigInteger hundred = new BigInteger("100"); &lt;br /&gt; static BigInteger thousand = new BigInteger("1000"); &lt;br /&gt;&lt;br /&gt; static BigInteger n = new BigInteger("0");&lt;br /&gt; static BigInteger p = new BigInteger("0");&lt;br /&gt; static BigInteger known = new BigInteger("0");&lt;br /&gt; static BigInteger numtrials = new BigInteger("0");&lt;br /&gt; static String s;&lt;br /&gt;&lt;br /&gt; static int olds1 = 0;&lt;br /&gt; static int s1 = 0;&lt;br /&gt;&lt;br /&gt; static Date d;&lt;br /&gt; static long starttime;&lt;br /&gt; static long finishtime;&lt;br /&gt; static long duration;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; public static void main (String args[])&lt;br /&gt;  throws java.io.IOException {&lt;br /&gt;&lt;br /&gt;  we2tr2 we2tr2inst = new we2tr2();&lt;br /&gt;&lt;br /&gt;  char c;&lt;br /&gt;  String sInput;&lt;br /&gt;&lt;br /&gt;   StringBuffer sbInput = new StringBuffer("");&lt;br /&gt;&lt;br /&gt;   while ((c = (char)System.in.read()) != '\n' &amp;&amp; c != '\r')&lt;br /&gt;    sbInput.append(c);&lt;br /&gt;   System.in.read();&lt;br /&gt;   sInput = sbInput.toString().trim();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   if (sInput.charAt(0) == 'f' || sInput.charAt(0) == 'F') {&lt;br /&gt;    s = sInput.substring(1).trim();&lt;br /&gt;&lt;br /&gt;    s1 = 0;&lt;br /&gt;    olds1 = 0;&lt;br /&gt;    p = we2tr2inst.eval(s);&lt;br /&gt;&lt;br /&gt;    System.out.println('[' + p.toString() + ']');&lt;br /&gt;   }&lt;br /&gt;   else {&lt;br /&gt;    p = new BigInteger(sInput);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   n = p;&lt;br /&gt;&lt;br /&gt;   d = new Date();&lt;br /&gt;   starttime = d.getTime();&lt;br /&gt;&lt;br /&gt;   we2tr2inst.factorize(n);&lt;br /&gt;   &lt;br /&gt;   d = new Date();&lt;br /&gt;   finishtime = d.getTime();&lt;br /&gt;&lt;br /&gt;   duration = (finishtime-starttime)/1000;&lt;br /&gt;&lt;br /&gt;   System.out.println("duration: " + duration + " seconds");&lt;br /&gt;&lt;br /&gt;   System.out.println();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public boolean factorize(BigInteger n) {&lt;br /&gt;  boolean prime = false;&lt;br /&gt;  BigInteger numtested = new BigInteger("0");&lt;br /&gt;  BigInteger T = new BigInteger("1");&lt;br /&gt;  BigInteger b = new BigInteger("1");&lt;br /&gt;  BigInteger A = new BigInteger("2");&lt;br /&gt;  BigInteger wanless = new BigInteger("2");&lt;br /&gt;&lt;br /&gt;  if (n.isProbablePrime(1000)) {&lt;br /&gt;   prime = true;&lt;br /&gt;   System.out.println(n);&lt;br /&gt;   return prime;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;// workaround - apparent java bug in modPow - JGW&lt;br /&gt;  if (n.compareTo(two) &lt; 0)&lt;br /&gt;   return false;&lt;br /&gt;&lt;br /&gt;  if (n.remainder(two).compareTo(zero) == 0) {&lt;br /&gt;   System.out.println(two.toString());&lt;br /&gt;// added 2006-06-09&lt;br /&gt;   return(factorize(n.divide(two)));&lt;br /&gt;  }&lt;br /&gt;// end workaround  &lt;br /&gt;&lt;br /&gt;  while (wanless.compareTo(n) &lt; 0)&lt;br /&gt;    wanless = wanless.multiply(two);&lt;br /&gt;&lt;br /&gt;  Random r = new Random();&lt;br /&gt;&lt;br /&gt;  numtested = zero;&lt;br /&gt;&lt;br /&gt;  while (T.compareTo(one) == 0 || T.compareTo(n) == 0) {&lt;br /&gt;// changed JW 2005-3-23&lt;br /&gt;   A = new BigInteger(hundred.intValue(), r);&lt;br /&gt;&lt;br /&gt;// added JGW 2006-06-09&lt;br /&gt;System.out.print("base#" + numtested + '\r');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// changed DT 2005-2-20&lt;br /&gt;   b = A.modPow(wanless, n);&lt;br /&gt;   T = n.gcd(b.modPow(n, n).subtract(b));&lt;br /&gt;&lt;br /&gt;   numtested = numtested.add(one);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  if (T.compareTo(one) &gt; 0 &amp;&amp; T.compareTo(n) &lt; 0) {&lt;br /&gt;  &lt;br /&gt;   d = new Date();&lt;br /&gt;   finishtime = d.getTime();&lt;br /&gt;&lt;br /&gt;   duration = (finishtime-starttime)/1000;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;   System.out.println();&lt;br /&gt;   System.out.println("elapsed=" + duration + "s" + '\t' + "factor=" + T.toString() + '\t' + "A=" + A.toString() + '\t');&lt;br /&gt;   factorize(n.divide(T));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return prime;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; public BigInteger evalRand(char op, BigInteger oldn) {&lt;br /&gt;  BigInteger n = new BigInteger("1");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case 'r':&lt;br /&gt;  case 'R':&lt;br /&gt;   Random r = new Random();&lt;br /&gt;&lt;br /&gt;   n = new BigInteger(oldn.intValue(), r);&lt;br /&gt;   break;&lt;br /&gt;&lt;br /&gt;  default:&lt;br /&gt;   n = oldn;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalFact(BigInteger oldn, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("1");&lt;br /&gt;  BigInteger i = new BigInteger("1");&lt;br /&gt;  BigInteger j = new BigInteger("1");&lt;br /&gt;  boolean prime = true;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '!':&lt;br /&gt;   for (i = one; i.compareTo(oldn) &lt;= 0; i = i.add(one))&lt;br /&gt;    n = n.multiply(i);&lt;br /&gt;   break;&lt;br /&gt;&lt;br /&gt;  case '#':&lt;br /&gt;   for (i = one; i.compareTo(oldn) &lt;= 0; i = i.add(one)) {&lt;br /&gt;    prime = true;&lt;br /&gt;    for (j = two; (prime == true) &amp;&amp; (j.multiply(j).compareTo(i) &lt;= 0); j = j.add(one))&lt;br /&gt;     if (i.remainder(j).compareTo(zero) == 0)&lt;br /&gt;      prime = false;&lt;br /&gt;    if (prime == true)&lt;br /&gt;     n = n.multiply(i);&lt;br /&gt;   }&lt;br /&gt;   break;&lt;br /&gt;&lt;br /&gt;  default:&lt;br /&gt;   n = oldn;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalPower(BigInteger oldn, BigInteger n1, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '^':&lt;br /&gt;   n = oldn.pow(n1.intValue());&lt;br /&gt;   break;&lt;br /&gt;  default:&lt;br /&gt;   n = n1;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalProduct(BigInteger oldn, BigInteger n1, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '*':&lt;br /&gt;   n = oldn.multiply(n1);&lt;br /&gt;   break;&lt;br /&gt;  case '/':&lt;br /&gt;   n = oldn.divide(n1);&lt;br /&gt;   break;&lt;br /&gt;  case '%':&lt;br /&gt;   n = oldn.remainder(n1);&lt;br /&gt;   break;&lt;br /&gt;  default:&lt;br /&gt;   n = n1;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger evalSum(BigInteger oldn, BigInteger n1, char op) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  switch (op) {&lt;br /&gt;  case '+':&lt;br /&gt;   n = oldn.add(n1);&lt;br /&gt;   break;&lt;br /&gt;  case '-':&lt;br /&gt;   n = oldn.subtract(n1);&lt;br /&gt;   break;&lt;br /&gt;  default:&lt;br /&gt;   n = n1;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger eval(String s) {&lt;br /&gt;  BigInteger oldn0 = new BigInteger("0");&lt;br /&gt;  BigInteger oldn1 = new BigInteger("0");&lt;br /&gt;  BigInteger oldn2 = new BigInteger("0");&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  char oldop0 = 0;&lt;br /&gt;  char oldop1 = 0;&lt;br /&gt;  char oldop2 = 0;&lt;br /&gt;  char op = 0;&lt;br /&gt;&lt;br /&gt;  while (s1 &lt; s.length()) {&lt;br /&gt;   switch (s.charAt(s1)) {&lt;br /&gt;    case '(':&lt;br /&gt;    case '[':&lt;br /&gt;    case '{':&lt;br /&gt;     s1++;&lt;br /&gt;     n = eval(s);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '0':&lt;br /&gt;    case '1':&lt;br /&gt;    case '2':&lt;br /&gt;    case '3':&lt;br /&gt;    case '4':&lt;br /&gt;    case '5':&lt;br /&gt;    case '6':&lt;br /&gt;    case '7':&lt;br /&gt;    case '8':&lt;br /&gt;    case '9':&lt;br /&gt;     n = readNum(s);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    default:&lt;br /&gt;     break;&lt;br /&gt;   }&lt;br /&gt;   if (s1 &lt; s.length()) {&lt;br /&gt;    switch (s.charAt(s1)) {&lt;br /&gt;&lt;br /&gt;    case ')':&lt;br /&gt;    case ']':&lt;br /&gt;    case '}':&lt;br /&gt;    case '!':&lt;br /&gt;    case '#':&lt;br /&gt;    case 'r':&lt;br /&gt;    case 'R':&lt;br /&gt;    case '^':&lt;br /&gt;    case '*':&lt;br /&gt;    case '/':&lt;br /&gt;    case '%':&lt;br /&gt;    case '+':&lt;br /&gt;    case '-':&lt;br /&gt;     op = s.charAt(s1);&lt;br /&gt;     s1++;&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    default:&lt;br /&gt;     break;&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;    op = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   switch (op) {&lt;br /&gt;    case 0:&lt;br /&gt;    case ')':&lt;br /&gt;    case ']':&lt;br /&gt;    case '}':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     n = evalProduct(oldn1, n, oldop1);&lt;br /&gt;     n = evalSum(oldn0, n, oldop0);&lt;br /&gt;     return n;&lt;br /&gt;&lt;br /&gt;    case '!':&lt;br /&gt;    case '#':&lt;br /&gt;     n = evalFact(n, op);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case 'r':&lt;br /&gt;    case 'R':&lt;br /&gt;     n = readNum(s);&lt;br /&gt;     n = evalRand(op, n);&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '^':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     oldn2 = n;&lt;br /&gt;     oldop2 = op;&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '*':&lt;br /&gt;    case '/':&lt;br /&gt;    case '%':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     oldop2 = 0;&lt;br /&gt;     n = evalProduct(oldn1, n, oldop1);&lt;br /&gt;     oldn1 = n;&lt;br /&gt;     oldop1 = op;&lt;br /&gt;     break;&lt;br /&gt;&lt;br /&gt;    case '+':&lt;br /&gt;    case '-':&lt;br /&gt;     n = evalPower(oldn2, n, oldop2);&lt;br /&gt;     oldop2 = 0;&lt;br /&gt;     n = evalProduct(oldn1, n, oldop1);&lt;br /&gt;     oldop1 = 0;&lt;br /&gt;     n = evalSum(oldn0, n, oldop0);&lt;br /&gt;     oldn0 = n;&lt;br /&gt;     oldop0 = op;&lt;br /&gt;     break;&lt;br /&gt;    default:&lt;br /&gt;     break;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public BigInteger readNum(String s) {&lt;br /&gt;  BigInteger n = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  olds1 = s1;&lt;br /&gt;  while (s1 &lt; s.length() &amp;&amp; Character.isDigit(s.charAt(s1)))&lt;br /&gt;   s1++;&lt;br /&gt;  n = new BigInteger(s.substring(olds1, s1));&lt;br /&gt;&lt;br /&gt;  return n;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2601313407654292251?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2601313407654292251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2601313407654292251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2601313407654292251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2601313407654292251'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/we-on-carmichaels.html' title='WE on Carmichaels'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2817491607081594721</id><published>2007-12-26T00:30:00.001-08:00</published><updated>2008-12-12T23:21:45.196-08:00</updated><title type='text'>Charles Babbage</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gnz1PXGiFck/R3IRS62tDZI/AAAAAAAAACM/BLReLBMR0qo/s1600-h/200px-CharlesBabbage.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Gnz1PXGiFck/R3IRS62tDZI/AAAAAAAAACM/BLReLBMR0qo/s320/200px-CharlesBabbage.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5148196340771917202" /&gt;&lt;/a&gt;Here is a sketch (from Wikipedia) of Charles Babbage (b 26 December 1791).&lt;br /&gt;He was the first to envisage a machine that could compute, though at the time this vision was of a purely mechanical device.&lt;br /&gt;From &lt;a href="http://en.wikipedia.org/wiki/Babbage"&gt;http://en.wikipedia.org/wiki/Babbage&lt;/a&gt;&lt;br /&gt;"He began in 1822 with what he called the difference engine, made to compute values of polynomial functions"&lt;br /&gt;"The first difference engine was composed of around 25,000 parts, weighed fifteen tons (13,600 kg), and stood 8 ft (2.4 m) high. Although he received ample funding for the project, it was never completed"&lt;br /&gt;"In 1991 a perfectly functioning difference engine was constructed from Babbage's original plans. Built to tolerances achievable in the 19th century, the success of the finished engine indicated that Babbage's machine would have worked"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2817491607081594721?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2817491607081594721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2817491607081594721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2817491607081594721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2817491607081594721'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/charles-babbage.html' title='Charles Babbage'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gnz1PXGiFck/R3IRS62tDZI/AAAAAAAAACM/BLReLBMR0qo/s72-c/200px-CharlesBabbage.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8698901390821602983</id><published>2007-12-25T00:57:00.000-08:00</published><updated>2007-12-25T00:58:23.344-08:00</updated><title type='text'>P2007</title><content type='html'>To celebrate Christmas 2007, for the past few days I have been factorizing P2007.&lt;br /&gt;Here are the results:&lt;br /&gt;ibu:~/math james$ time java superfac9&lt;br /&gt;f2^2007+1&lt;br /&gt;&lt;br /&gt;[14696072899510457910180264975074329395485666586735298566113827031369808145822340017365241424851280254956108347379039523500123122699047108242251921358933160773008638610599971840088163730974725743542902654728126239332046779346737710585256579333179693308275839559444787047544912589519783891140629020412202583212053620350010688717104574055412999539319651392054912347738448106306817040926244005345442289064602444671410741520258787821875717396461207456197233847539467765831034596299478021012490490523728714592688694474716929987628644661687302977141155300336976022455747686505323874664699578081559660947075760129]&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  3&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  3&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  3&lt;br /&gt;brute...            &lt;br /&gt;brutep:  19&lt;br /&gt;wanless...          &lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 247531&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 219256122131&lt;br /&gt;wanless...          &lt;br /&gt;aprtcle: 20493495920905043950407650450918171260318303154708405513&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 4340301546362831119363&lt;br /&gt;aprtcle: &lt;br /&gt;56377694445208154141927654613855613062927113955212040908548454699046039020893338370875013074480485757794923&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 73215361&lt;br /&gt;ecm...          ^C  &lt;br /&gt;real    3459m6.204s&lt;br /&gt;user    3424m7.740s&lt;br /&gt;sys     5m57.800s&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8698901390821602983?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8698901390821602983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8698901390821602983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8698901390821602983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8698901390821602983'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/p2007.html' title='P2007'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1264269632682424257</id><published>2007-12-24T02:24:00.001-08:00</published><updated>2008-12-12T23:21:45.519-08:00</updated><title type='text'>Andrew Odlyzko</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Gnz1PXGiFck/R2-JEq2tDYI/AAAAAAAAACE/9ysDjBZLc0Q/s1600-h/newamo3.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Gnz1PXGiFck/R2-JEq2tDYI/AAAAAAAAACE/9ysDjBZLc0Q/s320/newamo3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5147483612423982466" /&gt;&lt;/a&gt;Andrew Odlyzko (picture reproduced with kind permission)&lt;br /&gt;&lt;a href="http://www.dtc.umn.edu/~odlyzko/"&gt;http://www.dtc.umn.edu/~odlyzko/&lt;/a&gt;&lt;br /&gt;is probably mainly known for his contribution to the analysis of Riemann zeros, and the study of discrete logarithms. However, he also helped develop the Lanczos linear algebra stage of the QS (and other sieves), in his paper "Solving large sparse linear systems over finite fields" (1991),&lt;br /&gt;&lt;a href="http://citeseer.ist.psu.edu/140341.html"&gt;http://citeseer.ist.psu.edu/140341.html&lt;/a&gt;&lt;br /&gt; and has also authored a description of the state of factorization, looking ahead, "The future of integer factorization" (1995)&lt;br /&gt;&lt;a href="http://www.dtc.umn.edu/~odlyzko/doc/crypto.html"&gt;http://www.dtc.umn.edu/~odlyzko/doc/crypto.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1264269632682424257?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1264269632682424257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1264269632682424257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1264269632682424257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1264269632682424257'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/andrew-odlyzko.html' title='Andrew Odlyzko'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gnz1PXGiFck/R2-JEq2tDYI/AAAAAAAAACE/9ysDjBZLc0Q/s72-c/newamo3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8968208106120221</id><published>2007-12-23T01:31:00.000-08:00</published><updated>2007-12-23T01:32:02.649-08:00</updated><title type='text'>Fibonacci# factorization</title><content type='html'>Fibonacci Number Factorization:&lt;br /&gt;&lt;a href="http://home.att.net/~blair.kelly/mathematics/fibonacci/index.html"&gt;http://home.att.net/~blair.kelly/mathematics/fibonacci/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8968208106120221?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8968208106120221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8968208106120221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8968208106120221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8968208106120221'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/fibonacci-factorization.html' title='Fibonacci# factorization'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7486506021332604691</id><published>2007-12-22T00:25:00.000-08:00</published><updated>2008-12-12T23:21:45.878-08:00</updated><title type='text'>Tom Flowers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gnz1PXGiFck/R2zKb62tDXI/AAAAAAAAAB8/HQM7O7Rzl_M/s1600-h/RCA12ax7.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Gnz1PXGiFck/R2zKb62tDXI/AAAAAAAAAB8/HQM7O7Rzl_M/s320/RCA12ax7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5146711055181614450" /&gt;&lt;/a&gt;Today marks the birthday of Dr Tommy Flowers, the builder (somewhat w/ Alan Turing) of the first modern ie digital computer. It was constructed during WWII here in UK, to decrypt German operations messages, and christened 'Colossus'. It contained 2400 thermionic valves (picture from Wikipedia) each several centimetres long, so its name was suitably apt! These valves were basically operating as switches (even though they were primarily designed as amplifiers), and serve the same role that transistors on a chip do in modern microprocessors, though these latter contain many millions on a tiny wafer.&lt;br /&gt;The Colossus represented a real advance in computing though, as it was the first time that a machine had been built using electronic rather than mechanical switches for greater speed and flexibility. It was this potential that Flowers recognised.&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.ivorcatt.com/47c.htm"&gt;http://www.ivorcatt.com/47c.htm&lt;/a&gt;&lt;br /&gt;"At the time I had no thought or knowledge of computers in the modern sense and had never heard the term used except to describe somebody who did calculations on a desk machine."&lt;br /&gt;&lt;br /&gt;"Colossus was useful in more than one way, and there were even demonstrations applying it to number theory. But these demonstrations were more notable for their ingenuity than for their effectiveness."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7486506021332604691?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7486506021332604691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7486506021332604691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7486506021332604691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7486506021332604691'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/tom-flowers.html' title='Tom Flowers'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gnz1PXGiFck/R2zKb62tDXI/AAAAAAAAAB8/HQM7O7Rzl_M/s72-c/RCA12ax7.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6183976789280836851</id><published>2007-12-21T00:02:00.001-08:00</published><updated>2007-12-21T00:02:52.186-08:00</updated><title type='text'>Partition# factorization</title><content type='html'>Factorization of Partition Numbers:&lt;br /&gt;&lt;a href="http://www.asahi-net.or.jp/~KC2H-MSM/mathland/part/"&gt;http://www.asahi-net.or.jp/~KC2H-MSM/mathland/part/&lt;/a&gt;&lt;br /&gt;(see&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Partition_%28number_theory%29"&gt;http://en.wikipedia.org/wiki/Partition_%28number_theory%29&lt;/a&gt;&lt;br /&gt;for a description/definition of a 'partition' number)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6183976789280836851?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6183976789280836851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6183976789280836851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6183976789280836851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6183976789280836851'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/partition-factorization.html' title='Partition# factorization'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5030364620868897786</id><published>2007-12-20T01:06:00.000-08:00</published><updated>2007-12-20T01:07:27.721-08:00</updated><title type='text'>Primorials(+/-1) Factorization</title><content type='html'>[The first in a trio of links, for this blog, of some types of numbers currently being factorized]&lt;br /&gt;Factorization of Primorials(+/-1):&lt;br /&gt;&lt;a href="http://primorial.unit82.com/"&gt;http://primorial.unit82.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5030364620868897786?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5030364620868897786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5030364620868897786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5030364620868897786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5030364620868897786'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/primorials-1-factorization.html' title='Primorials(+/-1) Factorization'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4951420600300111375</id><published>2007-12-19T00:02:00.000-08:00</published><updated>2007-12-19T00:03:16.657-08:00</updated><title type='text'>Factor Announcements</title><content type='html'>Here is a nice page detailing historical announcements of factorization achievements:&lt;br /&gt;&lt;a href="http://www.crypto-world.com/FactorAnnouncements.html"&gt;http://www.crypto-world.com/FactorAnnouncements.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4951420600300111375?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4951420600300111375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4951420600300111375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4951420600300111375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4951420600300111375'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/factor-announcements.html' title='Factor Announcements'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-856496642232770965</id><published>2007-12-18T01:49:00.000-08:00</published><updated>2008-12-12T23:21:46.155-08:00</updated><title type='text'>Factorization Methods Hexagon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gnz1PXGiFck/R2eYi62tDWI/AAAAAAAAAB0/pQdyk5IEFPk/s1600-h/Hexagon.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Gnz1PXGiFck/R2eYi62tDWI/AAAAAAAAAB0/pQdyk5IEFPk/s320/Hexagon.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5145248824975756642" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-856496642232770965?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/856496642232770965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=856496642232770965' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/856496642232770965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/856496642232770965'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/factorization-methods-hexagon.html' title='Factorization Methods Hexagon'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gnz1PXGiFck/R2eYi62tDWI/AAAAAAAAAB0/pQdyk5IEFPk/s72-c/Hexagon.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2894819053015209969</id><published>2007-12-17T00:02:00.001-08:00</published><updated>2007-12-17T00:02:35.313-08:00</updated><title type='text'>Msieve v1.32</title><content type='html'>New version of msieve available:&lt;br /&gt;Announcement at:&lt;br /&gt;&lt;a href="http://mersenneforum.org/showpost.php?p=120869&amp;postcount=344"&gt;http://mersenneforum.org/showpost.php?p=120869&amp;postcount=344&lt;/a&gt;&lt;br /&gt;Download from:&lt;br /&gt;&lt;a href="http://www.boo.net/~jasonp/qs.html"&gt;http://www.boo.net/~jasonp/qs.html&lt;/a&gt;&lt;br /&gt;It would appear that the promised merge w/ GGNFS is underway...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2894819053015209969?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2894819053015209969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2894819053015209969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2894819053015209969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2894819053015209969'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/msieve-v132.html' title='Msieve v1.32'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8608728764248879052</id><published>2007-12-16T01:58:00.000-08:00</published><updated>2007-12-16T01:59:37.311-08:00</updated><title type='text'>Number of University Departments Factorizing</title><content type='html'>How many University departments around the world are actively engaged in factorization? These spring to mind...&lt;br /&gt;Well, there's Bruce Dodson's university, Lehigh in Pennsylvania USA for one - I understand Bruce manages several dozen PC's running ECM curves on the Cunningham Project targets.&lt;br /&gt;Paul Zimmermann, at INRIA, in Nancy, France, is in charge of developing the GMP-ECM software itself, that Bruce Dodson (amongst others :) is running. I believe Alex Kruppa has links there, as well as many PC's in a French grid, the GRID5000. Amazingly, I'm guessing, the 5000 refers to an approximate, or at least, goal, of number of cores in the grid:&lt;br /&gt;&lt;a href="https://www.grid5000.fr/mediawiki/index.php/Special:G5KHardware"&gt;https://www.grid5000.fr/mediawiki/index.php/Special:G5KHardware&lt;/a&gt;&lt;br /&gt;Greg Childers, at Cal State, Fullerton, California USA, also has several dozen machines available for factoring, which he uses on a variety of projects.&lt;br /&gt;At Cambridge University, UK, Paul Leyland has, and still is, contributing to a variety of projects, including Cunningham Project (via NFSNET - more on that project at a later date, hopefully) and more recently, Homogeneous Cunninghams.&lt;br /&gt;Then of course there is the (legendary?) CWI, or Centrum voor Wiskunde en Informatica in Amsterdam in the Netherlands...&lt;br /&gt;There must be many more (maybe these are just the most vociferous!:), feel free to add to the list, you other folks out there [or let me know of specific omissions] - but that's 5 for starters, [I seem to have picked mainly computational rather than theoretical research] almost without thinking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8608728764248879052?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8608728764248879052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8608728764248879052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8608728764248879052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8608728764248879052'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/number-of-university-departments.html' title='Number of University Departments Factorizing'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7951616114421181887</id><published>2007-12-15T01:00:00.001-08:00</published><updated>2008-12-12T23:21:46.320-08:00</updated><title type='text'>Tesla</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Gnz1PXGiFck/R2OX6K2tDVI/AAAAAAAAABs/a24mFBs-6jM/s1600-h/tesla.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Gnz1PXGiFck/R2OX6K2tDVI/AAAAAAAAABs/a24mFBs-6jM/s320/tesla.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5144122224989244754" /&gt;&lt;/a&gt;...or you can buy a dedicated device (one example pictured (c) NVIDIA), called a 'Tesla', with the NVIDIA CUDA GPUs in situ:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/NVIDIA_Tesla"&gt;http://en.wikipedia.org/wiki/NVIDIA_Tesla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7951616114421181887?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7951616114421181887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7951616114421181887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7951616114421181887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7951616114421181887'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/tesla.html' title='Tesla'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gnz1PXGiFck/R2OX6K2tDVI/AAAAAAAAABs/a24mFBs-6jM/s72-c/tesla.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7210492227102381715</id><published>2007-12-14T00:02:00.001-08:00</published><updated>2007-12-14T00:02:47.956-08:00</updated><title type='text'>Msieve V1.31</title><content type='html'>New version of msieve (by Jason Papadopoulos) now available. It seems this is a significant upgrade, with lots of new stuff.&lt;br /&gt;Download from:&lt;br /&gt;&lt;a href="http://www.boo.net/~jasonp/qs.html"&gt;http://www.boo.net/~jasonp/qs.html&lt;/a&gt;&lt;br /&gt;Announcement here:&lt;br /&gt;&lt;a href="http://mersenneforum.org/showpost.php?p=120642&amp;postcount=339"&gt;http://mersenneforum.org/showpost.php?p=120642&amp;postcount=339&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7210492227102381715?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7210492227102381715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7210492227102381715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7210492227102381715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7210492227102381715'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/msieve-v131.html' title='Msieve V1.31'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8800145390757714680</id><published>2007-12-13T00:37:00.000-08:00</published><updated>2007-12-13T00:38:04.049-08:00</updated><title type='text'>CUDA</title><content type='html'>Here are some links to an interesting new technology, which might be very useful for any "embarassingly parallel" (see earlier blog-post for definition of that) factorization (or other) algorithms. It's basically a method of using all the processing power inherent in modern GPUs for CPU-type calculations, and something I for one will be keeping an eye on...&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/CUDA"&gt;http://en.wikipedia.org/wiki/CUDA&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.nvidia.com/object/cuda.html#downloads"&gt;http://developer.nvidia.com/object/cuda.html#downloads&lt;/a&gt;&lt;br /&gt;&lt;a href="http://courses.ece.uiuc.edu/ece498/al1/"&gt;http://courses.ece.uiuc.edu/ece498/al1/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://courses.ece.uiuc.edu/ece498/al1/Syllabus.html"&gt;http://courses.ece.uiuc.edu/ece498/al1/Syllabus.html&lt;/a&gt;&lt;br /&gt;It's even coming to Mac! :)&lt;br /&gt;&lt;a href="http://forums.nvidia.com/index.php?showtopic=47884"&gt;http://forums.nvidia.com/index.php?showtopic=47884&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8800145390757714680?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8800145390757714680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8800145390757714680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8800145390757714680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8800145390757714680'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/cuda.html' title='CUDA'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3368150644844490062</id><published>2007-12-12T00:02:00.001-08:00</published><updated>2007-12-12T00:02:33.735-08:00</updated><title type='text'>GMP-M+2</title><content type='html'>I've recently noticed an interesting feature of GMP's implementation of mod_pow (ie modular exponentiation). I'm using this as part of random-base WEP on large M+2's. Anyway I always imagined, and hoped it would use "Russian Peasant" (see earlier post on this blog for description of that). If that is the case,&lt;br /&gt;&lt;a href="http://gmplib.org/manual/Powering-Algorithms.html#Powering-Algorithms"&gt;http://gmplib.org/manual/Powering-Algorithms.html#Powering-Algorithms&lt;/a&gt;&lt;br /&gt; there should theoretically be a speed advantage to testing numbers that are (very) close to a power of 2 (as M+2's obviously are). And indeed I am observing just that - a 40% (!) speed increase testing the _raw_ M+2, rather than dividing out any factors (even though dividing out factors obviously leaves a slightly smaller number).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3368150644844490062?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3368150644844490062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3368150644844490062' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3368150644844490062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3368150644844490062'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/gmp-m2.html' title='GMP-M+2'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1417737192980366143</id><published>2007-12-11T00:06:00.000-08:00</published><updated>2007-12-11T00:07:14.679-08:00</updated><title type='text'>C138_101_75</title><content type='html'>I'm a total xyyxf junkie! :)&lt;br /&gt;Recently started another GNFS factorization for them, this time of 138-digit input number.&lt;br /&gt;ETA several months... [on 1 CPU](assuming all goes well). Currently sieved 9502/839184 rels. required.&lt;br /&gt;Hopefully the process will further increase my understanding of GNFS, which is kindof the point!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1417737192980366143?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1417737192980366143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1417737192980366143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1417737192980366143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1417737192980366143'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/c13810175.html' title='C138_101_75'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4801365570418375033</id><published>2007-12-10T00:02:00.001-08:00</published><updated>2007-12-10T00:02:43.130-08:00</updated><title type='text'>WIFC</title><content type='html'>This entry also is probably somewhat overdue:&lt;br /&gt;Check out Hisanori Mishima's comprehensive page on factorization at:&lt;br /&gt;&lt;a href="http://www.asahi-net.or.jp/%7EKC2H-MSM/mathland/matha1/"&gt;http://www.asahi-net.or.jp/%7EKC2H-MSM/mathland/matha1/&lt;/a&gt;&lt;br /&gt;Note that there are also download links to factoring software (by Satoshi Tomabechi) on this page (especially MPQS-type factoring)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4801365570418375033?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4801365570418375033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4801365570418375033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4801365570418375033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4801365570418375033'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/wifc.html' title='WIFC'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7223305022671876276</id><published>2007-12-09T01:13:00.000-08:00</published><updated>2007-12-09T01:14:08.841-08:00</updated><title type='text'>Cunningham Project</title><content type='html'>This is probably somewhat overdue, but here are a couple of links to the Cunningham Project, "one of the oldest continuously ongoing activities in computational number theory". [apparently it's been around since 1925]&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Cunningham_project"&gt;http://en.wikipedia.org/wiki/Cunningham_project&lt;/a&gt;&lt;br /&gt;&lt;a href="http://homes.cerias.purdue.edu/~ssw/cun/index.html"&gt;http://homes.cerias.purdue.edu/~ssw/cun/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7223305022671876276?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7223305022671876276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7223305022671876276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7223305022671876276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7223305022671876276'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/cunningham-project.html' title='Cunningham Project'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-386430946907845626</id><published>2007-12-08T01:27:00.000-08:00</published><updated>2007-12-08T01:28:07.258-08:00</updated><title type='text'>So just how big are these numbers?</title><content type='html'>So just how big are these numbers?&lt;br /&gt;Well mathematics is unique among the sciences for generating really SILLY (or impressive, depending on your point-of-view :) sized numbers. Even (standard) physics not only doesn't come close, but can't even stand comparison. Hence the other-worldly nature of math (and mathematicians! :)). Now possibly combinatorial aspects of holistic physics theories can generate big numbers, but in this case the theory is as much mathematical as physical, anyway.&lt;br /&gt;The way math generates these numbers is by a trick called 'exponentiation' (usually). This allows one to write (and sometimes even calculate with and manipulate) a very long number in a very succinct form. Exponentiation is basically a shorthand notation for multiplying a number by itself many times. Thus 10^100 (also known as a googol) is the number you get by multiplying 10 by itself 100 times. If written out in full it is '1' followed by 100 zeroes. And this isn't even that big by math (or even factorization) standards. Some of the larger M+2 numbers I've been testing would have millions of digits if written out in full. You can see why I called these numbers 'silly'-sized! And if you want to go really crazy in math, you can even iterate/stack the exponents... (there are notations existent for this)&lt;br /&gt;I expect many of you will be aware of the story of the Chinese inventor of chess? Apparently the emperor was so impressed with chess that he promised the inventor a reward based on the 64 squares of the chess-board, that the inventor (obviously a mathematician too) had tricked him into granting: namely this:&lt;br /&gt;1 grain of rice for the first square, 2 for the second, 4 for the third, 8 for the fourth, and so on, doubling each time. Total number of grains of rice 2^64, or about 10^20 - far more than the whole production of China, and the emperor was never able to make good his promise...! This doubling process is another example of exponentiation, as the emperor clearly learned the hard way.&lt;br /&gt;For comparison:&lt;br /&gt;1) Number of seconds elapsed since Genesis ~ 2*10^11 (just a measly 12-digit number)&lt;br /&gt;2) Number of seconds elapsed since the Jurassic ~ 2*10^15 (just a measly 16-digit number)&lt;br /&gt;3) Number of seconds elapsed since the start of the visible universe ~ 3*10^20 (just a measly 21-digit number)&lt;br /&gt;Incidentally, the complete factorization of any of these (exact) numbers on a modern PC would only take a (very) split-second.&lt;br /&gt;I'll repeat...&lt;br /&gt;Some of the numbers under test at the Mersenneplustwo project, for example, have _millions_ of digits. See why I used the adjective 'SILLY' yet - there really is almost no other word for these-size numbers?&lt;br /&gt;Finally, and this is perhaps the most remarkable fact of all - mathematics also deals with the infinite. And compared to infinity (ie the _whole_ Universe) every single one of these numbers is actually infinitesimally SMALL! Now how do you get your head around that??? I know I for one, have problems with that...&lt;br /&gt;Ahh, the mysteries of the finite and the infinite - or as Shakespeare famously put it:&lt;br /&gt;"To be or not to be, that is the question"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-386430946907845626?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/386430946907845626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=386430946907845626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/386430946907845626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/386430946907845626'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/so-just-how-big-are-these-numbers.html' title='So just how big are these numbers?'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6521509431946533410</id><published>2007-12-07T00:02:00.001-08:00</published><updated>2007-12-07T00:02:48.985-08:00</updated><title type='text'>M+2 record</title><content type='html'>Mersenneplustwo project.&lt;br /&gt;Here is a record of the number, and size, of new factors found, as well as an indication of the total effort, for each year since 2005:&lt;br /&gt;2005 - 10 (largest 38-digits) - 4GHz-yrs&lt;br /&gt;2006 - 3 (largest 19-digits) - 12GHz-yrs&lt;br /&gt;2007[so far] - 2 (largest 23-digits) - 100GHz-yrs&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6521509431946533410?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6521509431946533410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6521509431946533410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6521509431946533410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6521509431946533410'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/m2-record.html' title='M+2 record'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6589662800923201584</id><published>2007-12-06T02:13:00.001-08:00</published><updated>2007-12-06T02:13:35.678-08:00</updated><title type='text'>M+2 progress</title><content type='html'>A bit of news from the Mersenneplustwo project:&lt;br /&gt;As hoped for, getting Lenny the new MacBook going on those mid-range M+2's with mprime (ie by ECM) recently yielded a 21-digit factor from (M+2)1257787:&lt;br /&gt;&lt;a href="http://bearnol.is-a-geek.com/Mersenneplustwo/Mersenneplustwo.html"&gt;http://bearnol.is-a-geek.com/Mersenneplustwo/Mersenneplustwo.html&lt;/a&gt;&lt;br /&gt;Thanks once again to George Woltman, for his cool software!&lt;br /&gt;&lt;a href="http://www.mersenne.org/freesoft.htm"&gt;http://www.mersenne.org/freesoft.htm&lt;/a&gt;&lt;br /&gt;This is the second new factor found this year (both by mprime)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6589662800923201584?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6589662800923201584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6589662800923201584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6589662800923201584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6589662800923201584'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/m2-progress.html' title='M+2 progress'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2647834874671943456</id><published>2007-12-05T00:02:00.001-08:00</published><updated>2008-12-12T23:21:46.593-08:00</updated><title type='text'>John Tukey</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Gnz1PXGiFck/R1ZbW7K6HhI/AAAAAAAAABk/NUlqQdYBlb8/s1600-h/Tukey.jpeg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Gnz1PXGiFck/R1ZbW7K6HhI/AAAAAAAAABk/NUlqQdYBlb8/s320/Tukey.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5140396474088693266" /&gt;&lt;/a&gt;&lt;br /&gt;...to conclude this series on FFTs:&lt;br /&gt;This is a (PD) picture of John Tukey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2647834874671943456?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2647834874671943456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2647834874671943456' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2647834874671943456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2647834874671943456'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/john-tukey.html' title='John Tukey'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gnz1PXGiFck/R1ZbW7K6HhI/AAAAAAAAABk/NUlqQdYBlb8/s72-c/Tukey.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1668466046245373124</id><published>2007-12-04T00:02:00.001-08:00</published><updated>2007-12-04T00:02:35.233-08:00</updated><title type='text'>FFTs-part5</title><content type='html'>The Cooley-Tukey Algorithm is an FFT algorithm especially suited, and adapted for large integer multiplication. It was first published in 1965.&lt;br /&gt;GIMPS' mprime uses "radix-4" Cooley-Tukey to achieve a computation time of the order of NlogN (for N*N multiplication).&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Cooley-Tukey_FFT_algorithm"&gt;http://en.wikipedia.org/wiki/Cooley-Tukey_FFT_algorithm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1668466046245373124?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1668466046245373124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1668466046245373124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1668466046245373124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1668466046245373124'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/ffts-part5.html' title='FFTs-part5'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1004260258540477496</id><published>2007-12-03T00:02:00.001-08:00</published><updated>2007-12-03T00:02:34.074-08:00</updated><title type='text'>FFTs-part4</title><content type='html'>Parseval's Theorem&lt;br /&gt;A special case of Plancherel's Theorem, when function x = function y. Then the scaling constant = 1/(2*pi) [FT] or 1/N [DFT]&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Parseval%27s_theorem"&gt;http://en.wikipedia.org/wiki/Parseval%27s_theorem&lt;/a&gt;&lt;br /&gt;"The interpretation of this form of the theorem is that the total energy contained in a waveform x(t) summed across all of time t is equal to the total energy of the waveform's Fourier Transform X(f) summed across all of its frequency components f."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1004260258540477496?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1004260258540477496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1004260258540477496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1004260258540477496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1004260258540477496'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/ffts-part4.html' title='FFTs-part4'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-936211329386206536</id><published>2007-12-02T00:02:00.001-08:00</published><updated>2007-12-02T00:02:38.479-08:00</updated><title type='text'>FFTs-part3</title><content type='html'>Plancherel's Theorem&lt;br /&gt;A (unitary) relationship between the DFTs of any two functions x and y under multiplication (subject to a constant scaling factor), which property can be of additional use in simplifying the problem under computation.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Plancherel_theorem"&gt;http://en.wikipedia.org/wiki/Plancherel_theorem&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-936211329386206536?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/936211329386206536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=936211329386206536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/936211329386206536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/936211329386206536'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/ffts-part3.html' title='FFTs-part3'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3426176691332822464</id><published>2007-12-01T02:59:00.000-08:00</published><updated>2007-12-01T03:00:07.515-08:00</updated><title type='text'>FFTs-part2</title><content type='html'>The DFT (discrete Fourier transform) is basically a digital sampling (ie approximation) of the analog Fourier transform, and as such it remains finite throughout the domain.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Discrete_Fourier_transform"&gt;http://en.wikipedia.org/wiki/Discrete_Fourier_transform&lt;/a&gt;&lt;br /&gt;A fast Fourier transform (FFT) is an efficient algorithm to compute the discrete Fourier transform and its inverse, for eg, a particular problem.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Fast_Fourier_transform"&gt;http://en.wikipedia.org/wiki/Fast_Fourier_transform&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3426176691332822464?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3426176691332822464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3426176691332822464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3426176691332822464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3426176691332822464'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/12/ffts-part2.html' title='FFTs-part2'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1932945258939643789</id><published>2007-11-30T00:02:00.001-08:00</published><updated>2007-11-30T00:02:31.597-08:00</updated><title type='text'>FFTs-part1</title><content type='html'>The Fourier Transform - what is it?&lt;br /&gt;Well, suppose we have some sum or computation we wish to evaluate, for example to calculate a*b for some a and b, e.g. large integers (of several thousands of digits or more).&lt;br /&gt;Sometimes it can be easier to map each of the inputs to a new domain via some transform, perform the multiplication (approximating suitably if necessary) and then apply the reverse transform to get the original answer. Such a transform is the "Fourier" transform (and its inverse), and because of the way it maps objects/events to wave functions (expressed in terms of sin's and cos's) (and back) its respective domains of operation are termed 'time' and 'frequency'.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Fourier_transform"&gt;http://en.wikipedia.org/wiki/Fourier_transform&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mathworld.wolfram.com/FourierTransform.html"&gt;http://mathworld.wolfram.com/FourierTransform.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mathworld.wolfram.com/FourierSeries.html"&gt;http://mathworld.wolfram.com/FourierSeries.html&lt;/a&gt;&lt;br /&gt;Obviously, in order for the process to work, it depends on the reciprocity of the transforming function. This is achieved by the orthogonality of the underlying individual waveforms (Sturm-Liouville).&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Sturm-Liouville_theory"&gt;http://en.wikipedia.org/wiki/Sturm-Liouville_theory&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1932945258939643789?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1932945258939643789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1932945258939643789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1932945258939643789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1932945258939643789'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/ffts-part1.html' title='FFTs-part1'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4442536070010161730</id><published>2007-11-29T00:02:00.001-08:00</published><updated>2008-12-12T23:21:46.717-08:00</updated><title type='text'>Plancherel</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_Gnz1PXGiFck/R05yN2uGcaI/AAAAAAAAABc/3K2znGBJYkc/s1600-h/Plancherel.jpeg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Gnz1PXGiFck/R05yN2uGcaI/AAAAAAAAABc/3K2znGBJYkc/s320/Plancherel.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5138169807229055394" /&gt;&lt;/a&gt;&lt;br /&gt;This is a (PD) picture of Michel Plancherel.&lt;br /&gt;...which should lead me on to a discussion of Fourier Transforms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4442536070010161730?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4442536070010161730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4442536070010161730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4442536070010161730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4442536070010161730'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/plancherel.html' title='Plancherel'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gnz1PXGiFck/R05yN2uGcaI/AAAAAAAAABc/3K2znGBJYkc/s72-c/Plancherel.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-174185555006820646</id><published>2007-11-28T00:02:00.001-08:00</published><updated>2007-11-28T00:02:39.218-08:00</updated><title type='text'>C127_113_36</title><content type='html'>Well, I finally completed my factorization of C127_113_36 for the XYYXF project  - and by the recommended method - ie sieving by GGNFS, followed by post-processing with msieve. Thanks to Greg Childers, Bob Backstrom and Hallstein Hansen, who helped me with this transfer.&lt;br /&gt;Basically msieve needs three files:&lt;br /&gt;1) worktodo.ini - just containing the input number&lt;br /&gt;2) msieve.fb - with the details (roughly) transferred from the .poly file of GGNFS&lt;br /&gt;3) msieve.dat - with all the actual relations from GGNFS, translated to msieve format by procrels w/ the following crucial command:&lt;br /&gt;"procrels -fb C127_113_36.fb -prel rels.bin -dump"&lt;br /&gt;&lt;br /&gt;After this it's just a case of running msieve w/&lt;br /&gt;"msieve -nc -v"&lt;br /&gt;In the end the sieving [Lintel] took me about 3 months(!), because of memory limitations, and the GGNFS 'bounce', while the postprocessing in msieve [PPC-Tiger] finished to schedule in less than 2 days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-174185555006820646?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/174185555006820646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=174185555006820646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/174185555006820646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/174185555006820646'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/c12711336.html' title='C127_113_36'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5695017686453259077</id><published>2007-11-27T00:02:00.001-08:00</published><updated>2007-11-27T00:02:37.643-08:00</updated><title type='text'>Sieving Records</title><content type='html'>In fact, here is a nice page detailing historical records of factorizations using sieving methods:&lt;br /&gt;&lt;a href="http://www.crypto-world.com/FactorRecords.html"&gt;http://www.crypto-world.com/FactorRecords.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5695017686453259077?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5695017686453259077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5695017686453259077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5695017686453259077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5695017686453259077'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/sieving-records.html' title='Sieving Records'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5949986837725342541</id><published>2007-11-26T23:59:00.000-08:00</published><updated>2007-11-27T00:00:09.006-08:00</updated><title type='text'>Quadratic Sieve</title><content type='html'>Also, here is some info on the Quadratic Sieve (QS or MPQS, or, with slight variation, SIQS) method, invented in 1981 by Carl Pomerance, as an improvement to Dixon's Method:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Quadratic_sieve"&gt;http://en.wikipedia.org/wiki/Quadratic_sieve&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mathworld.wolfram.com/QuadraticSieve.html"&gt;http://mathworld.wolfram.com/QuadraticSieve.html&lt;/a&gt;&lt;br /&gt;From the former link:&lt;br /&gt;"On April 2, 1994, the factorization of RSA-129 was completed using QS. It was a 129-digit number, the product of two large primes, one of 64 digits and the other of 65. The factor base for this factorization contained 524339 primes. The data collection phase took 5000 MIPS-years, done in distributed fashion over the Internet. The data collected totaled 2GB. The data processing phase took 45 hours on Bellcore's MasPar (massively parallel) supercomputer. This was the largest published factorization by a general-purpose algorithm, until NFS was used to factor RSA-130, completed April 10, 1996."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5949986837725342541?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5949986837725342541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5949986837725342541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5949986837725342541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5949986837725342541'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/quadratic-sieve.html' title='Quadratic Sieve'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7984176810715424310</id><published>2007-11-26T00:02:00.001-08:00</published><updated>2007-11-26T00:02:32.008-08:00</updated><title type='text'>Dixon's Method</title><content type='html'>And here is some info about Dixon's method, which is related to CFRAC, and the precursor to most other modern sieving methods.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Dixon%27s_factorization_method"&gt;http://en.wikipedia.org/wiki/Dixon%27s_factorization_method&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mathworld.wolfram.com/DixonsFactorizationMethod.html"&gt;http://mathworld.wolfram.com/DixonsFactorizationMethod.html&lt;/a&gt;&lt;br /&gt;This method was first published in 1981.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7984176810715424310?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7984176810715424310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7984176810715424310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7984176810715424310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7984176810715424310'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/dixons-method.html' title='Dixon&apos;s Method'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4084022389677549312</id><published>2007-11-25T00:39:00.001-08:00</published><updated>2007-11-25T00:39:53.356-08:00</updated><title type='text'>CFRAC</title><content type='html'>Here are some links describing the CFRAC, or "continued fraction" factorization method:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Continued_fraction_factorization"&gt;http://en.wikipedia.org/wiki/Continued_fraction_factorization&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mathworld.wolfram.com/ContinuedFractionFactorizationAlgorithm.html"&gt;http://mathworld.wolfram.com/ContinuedFractionFactorizationAlgorithm.html&lt;/a&gt;&lt;br /&gt;Notable achievements of this method, first envisaged in 1931, include the factorization of F7, the seventh Fermat number, in 1970 by Morrison and Brillhart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4084022389677549312?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4084022389677549312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4084022389677549312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4084022389677549312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4084022389677549312'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/cfrac.html' title='CFRAC'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7500668506832137965</id><published>2007-11-24T00:43:00.000-08:00</published><updated>2007-11-24T00:45:45.785-08:00</updated><title type='text'>Rho:x^2-2</title><content type='html'>Most polynomials work nicely with Pollard Rho.&lt;br /&gt;However, f(x)=x^2 and f(x)=x^2-2 should be avoided.&lt;br /&gt;Here's what John Pollard had to say by way of reason, in 1975 [BIT 15, P.333]:&lt;br /&gt;"(i) that all polynomials x^2+b seem equally good in (1) except that x^2 and x^2-2 should not be used (whatever the starting value x0), the latter for reasons connected with its appearance in the Lucas-Lehmer test for primality of the Mersenne Numbers [3],"&lt;br /&gt;while Knuth has this to say [TAOCP Vol.2 P.386]:&lt;br /&gt;"In those rare cases where failure occurs for large N, we could try using f(x)=x^2+c for some c&lt;&gt;0 or 1. The value c=-2 should also be avoided, since the recurrence x_(m+1) = (x_m)^2-2 has solutions of the form x_m = r^(2^m) + r^-(2^m). Other values of c do not seem to lead to simple relationships mod p, and they should all be satisfactory when used with suitable starting values."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7500668506832137965?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7500668506832137965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7500668506832137965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7500668506832137965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7500668506832137965'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/rhox2-2.html' title='Rho:x^2-2'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1090803000049390298</id><published>2007-11-23T00:02:00.001-08:00</published><updated>2007-11-23T00:02:29.984-08:00</updated><title type='text'>2007 chips</title><content type='html'>I recently came across the following page, which has some interesting speed comparisons of the various types of modern chips...&lt;br /&gt;&lt;a href="http://www.tomshardware.com/2007/07/16/cpu_charts_2007/page36.html"&gt;http://www.tomshardware.com/2007/07/16/cpu_charts_2007/page36.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1090803000049390298?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1090803000049390298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1090803000049390298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1090803000049390298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1090803000049390298'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/2007-chips.html' title='2007 chips'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7081160190247642759</id><published>2007-11-22T00:02:00.001-08:00</published><updated>2008-12-12T23:21:46.914-08:00</updated><title type='text'>Desktop2</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_Gnz1PXGiFck/R0U5T2uGcZI/AAAAAAAAABU/GqmSVImF9lk/s1600-h/desktop2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Gnz1PXGiFck/R0U5T2uGcZI/AAAAAAAAABU/GqmSVImF9lk/s320/desktop2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5135573963355091346" /&gt;&lt;/a&gt;&lt;br /&gt;This is Lenny's desktop.&lt;br /&gt;It's currently running mprime255OSX on M+2's.&lt;br /&gt;I like the new 'spaces' feature of Leopard, it's something that's been good about Linux desktops for a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7081160190247642759?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7081160190247642759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7081160190247642759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7081160190247642759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7081160190247642759'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/desktop2.html' title='Desktop2'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Gnz1PXGiFck/R0U5T2uGcZI/AAAAAAAAABU/GqmSVImF9lk/s72-c/desktop2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2933585526221747632</id><published>2007-11-21T00:41:00.000-08:00</published><updated>2007-11-21T00:42:38.579-08:00</updated><title type='text'>LIM (Part 4) - Schonhage-Strassen</title><content type='html'>The Schonhage-Strassen (SSA) is an asymptotically fast multiplicative algorithm for large integers, developed in 1971.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Schönhage-Strassen_algorithm"&gt;http://en.wikipedia.org/wiki/Schönhage-Strassen_algorithm&lt;/a&gt;&lt;br /&gt;It uses Fast Fourier transforms (FFTs) (more on these at a later date hopefully) and its run-time complexity is of order nlognloglogn. [Note that the FFT must be performed modulo 2^n+1 for a suitable n, but by choosing n large enough this equates to a regular multiplication]&lt;br /&gt;This means that SSA outperforms Karatsuba or Toom-Cook for numbers with tens of thousands of digits or more. An example of its implementation is in GIMPS' Prime95/mprime software. A second example is the recent addition of SSA to the open-source math library GMP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2933585526221747632?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2933585526221747632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2933585526221747632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2933585526221747632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2933585526221747632'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/lim-part-4-schonhage-strassen.html' title='LIM (Part 4) - Schonhage-Strassen'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1600350943956918318</id><published>2007-11-20T00:16:00.001-08:00</published><updated>2007-11-20T01:41:18.988-08:00</updated><title type='text'>LIM (Part 3) - Toom-Cook</title><content type='html'>Another method of multiplication is called Toom-Cook, first described in 1963.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Toom-Cook_multiplication"&gt;http://en.wikipedia.org/wiki/Toom-Cook_multiplication&lt;/a&gt;&lt;br /&gt;This is basically a generalization of the Karatsuba Method, by splitting the input numbers into multiple parts at a time, rather than just two (as in Karatsuba) or 1 (ie no splitting) (as in classical long multiplication).&lt;br /&gt;Toom-3 (3-way Toom-Cook) reduces 9 multiplications to 5, and runs in order n^(log5/log3) time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1600350943956918318?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1600350943956918318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1600350943956918318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1600350943956918318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1600350943956918318'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/lim-part-3-toom-cook.html' title='LIM (Part 3) - Toom-Cook'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3558286028414775253</id><published>2007-11-19T03:49:00.000-08:00</published><updated>2007-11-19T03:55:06.344-08:00</updated><title type='text'>WEP-M+2 milestone</title><content type='html'>The WEP-M+2 Project has just announced that it has reached the milestone of 1000 instances of finding the 12-digit factor of (M+2)2203. Thanks to everyone who has participated so far.&lt;br /&gt;&lt;a href="http://bearnol.is-a-geek.com/wanless2/"&gt;http://bearnol.is-a-geek.com/wanless2/&lt;/a&gt;&lt;br /&gt;I estimate (I'm the project admin :) that those 1000 instances equate to about 27 CPU-years (modern CPU cores).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3558286028414775253?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3558286028414775253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3558286028414775253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3558286028414775253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3558286028414775253'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/wep-m2-milestone.html' title='WEP-M+2 milestone'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5315450992254412050</id><published>2007-11-19T00:02:00.001-08:00</published><updated>2007-11-19T00:02:45.304-08:00</updated><title type='text'>LIM (Part 2) - Karatsuba</title><content type='html'>A first improvement to long multiplication is the Karatsuba Algorithm.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Karatsuba_algorithm"&gt;http://en.wikipedia.org/wiki/Karatsuba_algorithm&lt;/a&gt;&lt;br /&gt;This was invented in 1960, and has a time complexity of order n^(log_2(3)).&lt;br /&gt;It relies on the observation that two-digit multiplication can be done with only 3, rather than 4, multiplications classically required. By "dividing and conquering" (ie splitting) the numbers to be multiplied this can be extended to larger numbers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5315450992254412050?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5315450992254412050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5315450992254412050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5315450992254412050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5315450992254412050'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/lim-part-2-karatsuba.html' title='LIM (Part 2) - Karatsuba'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7911921412312017373</id><published>2007-11-18T01:09:00.000-08:00</published><updated>2007-11-18T01:16:55.287-08:00</updated><title type='text'>Large Integer Multiplication (LIM) Part 1</title><content type='html'>Large Integer Multiplication is an algorithm to multiply two large integers together efficiently.&lt;br /&gt;This is often used by factorization algorithms, both for exponentiation, for example - when it is combined with the Russian Peasant method for extra speed (see earlier) or in fact, often, for division (by multiplying by the inverse of a number as the dividend)&lt;br /&gt;"Long Multiplication" is the obvious, and naive, method, but the time complexity of this is of order n^2 for two n-digit integers. So a number of improvements have been suggested. These will be examined in later parts of this series. For the moment read all about LIM on Wikipedia:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Multiplication_algorithm"&gt;http://en.wikipedia.org/wiki/Multiplication_algorithm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7911921412312017373?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7911921412312017373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7911921412312017373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7911921412312017373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7911921412312017373'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/large-integer-multiplication-lim-part-1.html' title='Large Integer Multiplication (LIM) Part 1'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2888052764915299012</id><published>2007-11-17T01:48:00.001-08:00</published><updated>2007-11-17T01:48:53.736-08:00</updated><title type='text'>Integer Factorization Records</title><content type='html'>"Integer factorization records" on Wikipedia has a summary of the current, and recent, state-of-play for the biggest non-trivial numbers yet factored:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Integer_factorization_records"&gt;http://en.wikipedia.org/wiki/Integer_factorization_records&lt;/a&gt;&lt;br /&gt;Note that these have all been achieved with some form of Number Field Sieve, either General (for numbers of no especial form), or Special (for the two Mersenne numbers cited).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2888052764915299012?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2888052764915299012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2888052764915299012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2888052764915299012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2888052764915299012'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/integer-factorization-records.html' title='Integer Factorization Records'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8735798498514446977</id><published>2007-11-16T03:40:00.000-08:00</published><updated>2007-11-16T03:41:37.112-08:00</updated><title type='text'>Msieve v1.30</title><content type='html'>New version [primarily a bugfix] of msieve (by Jason Papadopoulos) now available.&lt;br /&gt;Download from:&lt;br /&gt;&lt;a href="http://www.boo.net/~jasonp/qs.html"&gt;http://www.boo.net/~jasonp/qs.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8735798498514446977?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8735798498514446977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8735798498514446977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8735798498514446977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8735798498514446977'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/msieve-v130.html' title='Msieve v1.30'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2527957458665479795</id><published>2007-11-16T01:08:00.000-08:00</published><updated>2008-12-12T23:21:47.161-08:00</updated><title type='text'>The Magic Words are Squeamish Ossifrage</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_Gnz1PXGiFck/Rz1edGuGcYI/AAAAAAAAABM/ko1vfmfdem0/s1600-h/240px-Bartgeier_Gypaetus_barbatus_front_Richard_Bartz.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Gnz1PXGiFck/Rz1edGuGcYI/AAAAAAAAABM/ko1vfmfdem0/s320/240px-Bartgeier_Gypaetus_barbatus_front_Richard_Bartz.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5133363004385423746" /&gt;&lt;/a&gt;&lt;br /&gt;Here is a rather magnificent looking ossifrage [picture from Wikipedia] (though I don't know whether he's especially squeamish! :)&lt;br /&gt;The connection with factorization?&lt;br /&gt;Well the first ever RSA challenge, posed by Martin Gardner in 1977, had this phrase as its encrypted solution - deciphered in 1994 for the $100 prize:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Magic_Words_are_Squeamish_Ossifrage"&gt;http://en.wikipedia.org/wiki/The_Magic_Words_are_Squeamish_Ossifrage&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2527957458665479795?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2527957458665479795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2527957458665479795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2527957458665479795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2527957458665479795'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/magic-words-are-squeamish-ossifrage.html' title='The Magic Words are Squeamish Ossifrage'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Gnz1PXGiFck/Rz1edGuGcYI/AAAAAAAAABM/ko1vfmfdem0/s72-c/240px-Bartgeier_Gypaetus_barbatus_front_Richard_Bartz.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-3699133945673440220</id><published>2007-11-15T00:02:00.001-08:00</published><updated>2007-11-15T00:02:38.451-08:00</updated><title type='text'>SQUFOF</title><content type='html'>Shanks' square forms factorization was devised as an improvement on Fermat's method.&lt;br /&gt;&lt;br /&gt;Here is its entry on Wikipedia:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/SQUFOF"&gt;http://en.wikipedia.org/wiki/SQUFOF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and here is its implementation in superfac9:&lt;br /&gt; BigInteger factorizeshanks(BigInteger n) {&lt;br /&gt;  BigInteger a = new BigInteger("0");&lt;br /&gt;  BigInteger f = new BigInteger("0");&lt;br /&gt;  BigInteger h1 = new BigInteger("0");&lt;br /&gt;  BigInteger h2 = new BigInteger("0");&lt;br /&gt;  BigInteger k = new BigInteger("0");&lt;br /&gt;  BigInteger p = new BigInteger("0");&lt;br /&gt;  BigInteger pp = new BigInteger("0");&lt;br /&gt;  BigInteger q = new BigInteger("0");&lt;br /&gt;  BigInteger qq = new BigInteger("0");&lt;br /&gt;  BigInteger qqq = new BigInteger("0");&lt;br /&gt;  BigInteger r = new BigInteger("0");&lt;br /&gt;  BigInteger te = new BigInteger("0");&lt;br /&gt;  BigInteger i = new BigInteger("0");&lt;br /&gt;  BigInteger count = new BigInteger("0");&lt;br /&gt;&lt;br /&gt;  k = sqrt(n);&lt;br /&gt;&lt;br /&gt;  if (fastsquareQ(n)) return k;&lt;br /&gt;&lt;br /&gt;  a=k; h1=k; h2=ONE; pp=ZERO; qq=ONE; qqq=n; r=ZERO;&lt;br /&gt;&lt;br /&gt;  for (count=ONE;count.compareTo(TENTHOUSAND)&lt;0;count=count.add(ONE)) {&lt;br /&gt;   p=k.subtract(r);&lt;br /&gt;   q=qqq.add(a.multiply(pp.subtract(p)));&lt;br /&gt;   a=(p.add(k)).divide(q);&lt;br /&gt;   r=(p.add(k)).remainder(q);&lt;br /&gt;   te=(a.multiply(h1)).add(h2);&lt;br /&gt;   h2=h1;&lt;br /&gt;   h1=te;&lt;br /&gt;   pp=p;&lt;br /&gt;   qqq=qq;&lt;br /&gt;   qq=q;&lt;br /&gt;   te = sqrt(q);&lt;br /&gt;   i=i.add(ONE);&lt;br /&gt;   if ((i.remainder(TWO).compareTo(ZERO))!=0 || !fastsquareQ(q)) continue;&lt;br /&gt;   te=h2.subtract(te);&lt;br /&gt;   f=n.gcd(te);&lt;br /&gt;   if (f.compareTo(ONE) &gt; 0 &amp;&amp; f.compareTo(n) &lt; 0)&lt;br /&gt;    return f;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return f;&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-3699133945673440220?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/3699133945673440220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=3699133945673440220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3699133945673440220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/3699133945673440220'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/squfof.html' title='SQUFOF'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5823748800158278605</id><published>2007-11-14T01:26:00.001-08:00</published><updated>2007-11-14T01:26:52.294-08:00</updated><title type='text'>RSA-155</title><content type='html'>RSA-155  (a 155 digit semiprime) was factored on August 22, 1999 by GNFS.&lt;br /&gt;RSA-155 = 102639592829741105772054196573991675900716567808038066803341933521790711307779 &lt;br /&gt;        * 106603488380168454820927220360012878679207958575989291522270608237193062808643 &lt;br /&gt;&lt;br /&gt;Read more about it at Wikipedia:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RSA-155"&gt;http://en.wikipedia.org/wiki/RSA-155&lt;/a&gt;&lt;br /&gt;and on the official announcement:&lt;br /&gt;&lt;a href="http://listserv.nodak.edu/cgi-bin/wa.exe?A2=ind9908&amp;L=nmbrthry&amp;P=1905"&gt;http://listserv.nodak.edu/cgi-bin/wa.exe?A2=ind9908&amp;L=nmbrthry&amp;P=1905&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5823748800158278605?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5823748800158278605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5823748800158278605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5823748800158278605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5823748800158278605'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/rsa-155.html' title='RSA-155'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8753887808319207895</id><published>2007-11-13T00:12:00.000-08:00</published><updated>2007-11-13T00:13:27.772-08:00</updated><title type='text'>snfspoly</title><content type='html'>There is also 'snfspoly' - the equivalent of 'phi' for XYYXF composites, which can be difficult to find - search for it on the yahoo XYYXF mailing list, or email me...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8753887808319207895?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8753887808319207895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8753887808319207895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8753887808319207895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8753887808319207895'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/snfspoly.html' title='snfspoly'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2826618447630589250</id><published>2007-11-12T02:25:00.001-08:00</published><updated>2007-11-12T02:25:40.276-08:00</updated><title type='text'>Phi</title><content type='html'>Alex Kruppa has written a small (but growing) program, licensed under the GPL, called 'phi', for generating SNFS polynomials for use with GGNFS or msieve. It can currently produce correct polys for cyclotomic numbers (eg Cunningham Project) and 'Homogeneous' Cunninghams. Search for the source code (written in 'C', and using GMP) in the factoring section of the mersenneforum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2826618447630589250?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2826618447630589250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2826618447630589250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2826618447630589250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2826618447630589250'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/phi.html' title='Phi'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-125780991326086803</id><published>2007-11-11T00:35:00.001-08:00</published><updated>2007-11-11T00:35:53.209-08:00</updated><title type='text'>Prime Numbers and Computer Methods for Factorization</title><content type='html'>&lt;a href="http://www.amazon.com/Numbers-Computer-Factorization-Progress-Mathematics/dp/0817637435/ref=pd_bbs_sr_1/002-0912694-6296825?ie=UTF8&amp;s=books&amp;qid=1193823716&amp;sr=8-1"&gt;http://www.amazon.com/Numbers-Computer-Factorization-Progress-Mathematics/dp/0817637435/ref=pd_bbs_sr_1/002-0912694-6296825?ie=UTF8&amp;s=books&amp;qid=1193823716&amp;sr=8-1&lt;/a&gt;&lt;br /&gt;The above is a book I'd like to get!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-125780991326086803?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/125780991326086803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=125780991326086803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/125780991326086803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/125780991326086803'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/prime-numbers-and-computer-methods-for.html' title='Prime Numbers and Computer Methods for Factorization'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1429786120000418177</id><published>2007-11-10T00:02:00.001-08:00</published><updated>2007-11-10T00:02:30.094-08:00</updated><title type='text'>What does the term "embarrassingly parallel" mean?</title><content type='html'>An algorithm that can be run (very) profitably on many threads simultaneously. For example, trial-division, with a different random seed in each thread as the potential factor, to avoid repeating work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1429786120000418177?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1429786120000418177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1429786120000418177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1429786120000418177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1429786120000418177'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/what-does-term-embarrassingly-parallel.html' title='What does the term &quot;embarrassingly parallel&quot; mean?'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8957554002110770210</id><published>2007-11-09T00:02:00.001-08:00</published><updated>2007-11-09T23:06:51.589-08:00</updated><title type='text'>FireStream</title><content type='html'>I imagine these new chips from AMD would be great for embarrassingly parallel apps like most factorization methods...&lt;br /&gt;&lt;a href="http://www.pcworld.com/article/id,139413-c,amd/article.html"&gt;http://www.pcworld.com/article/id,139413-c,amd/article.html&lt;/a&gt;&lt;br /&gt;Here is some more on this series of chips, from Wikipedia:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/AMD_Stream_Processor"&gt;http://en.wikipedia.org/wiki/AMD_Stream_Processor&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8957554002110770210?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8957554002110770210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8957554002110770210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8957554002110770210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8957554002110770210'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/firestream.html' title='FireStream'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-924409955774980374</id><published>2007-11-08T00:02:00.001-08:00</published><updated>2007-11-08T00:02:37.710-08:00</updated><title type='text'>Velocity Engine</title><content type='html'>Apple has produced a sample application, to demonstrate their "Velocity Engine", which uses the vector capability of PPC chips, G4 &amp; G5.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/AltiVec"&gt;http://en.wikipedia.org/wiki/AltiVec&lt;/a&gt;&lt;br /&gt;It happens to be a factorization program! :)&lt;br /&gt;&lt;a href="http://developer.apple.com/samplecode/VelEng_Multiprecision/index.html"&gt;http://developer.apple.com/samplecode/VelEng_Multiprecision/index.html&lt;/a&gt;&lt;br /&gt;The program proceeds by trial-division, then rho, and finally ECM - and is quite fast...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-924409955774980374?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/924409955774980374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=924409955774980374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/924409955774980374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/924409955774980374'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/velocity-engine.html' title='Velocity Engine'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2800397482245442473</id><published>2007-11-07T00:02:00.001-08:00</published><updated>2007-11-07T00:02:38.780-08:00</updated><title type='text'>Lenny</title><content type='html'>Well I've only been and gone and done it! Bought a new MacBook that is, complete with Leopard. It's called "Lenny"&lt;br /&gt;I've already got it running George Woltman's mprime 25.5 for Mac OSX (beta), on medium-sized M+2 numbers, and have high expectations of finding a new factor or two :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2800397482245442473?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2800397482245442473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2800397482245442473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2800397482245442473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2800397482245442473'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/lenny.html' title='Lenny'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8696399138427128333</id><published>2007-11-06T00:08:00.001-08:00</published><updated>2007-11-06T00:09:09.270-08:00</updated><title type='text'>Richard Brent</title><content type='html'>&lt;a href="http://wwwmaths.anu.edu.au/~brent/rpb.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://wwwmaths.anu.edu.au/~brent/rpb.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Here is a picture of Richard Brent, from his homepage:&lt;br /&gt;&lt;a href="http://wwwmaths.anu.edu.au/~brent/"&gt;http://wwwmaths.anu.edu.au/~brent/&lt;/a&gt;&lt;br /&gt;(image linked to in situ)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8696399138427128333?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8696399138427128333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8696399138427128333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8696399138427128333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8696399138427128333'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/richard-brent.html' title='Richard Brent'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4554016278717163214</id><published>2007-11-05T00:02:00.001-08:00</published><updated>2007-11-05T00:02:33.056-08:00</updated><title type='text'>Brent's Method</title><content type='html'>Brent's improvement (in 1980) to Pollard's rho method is to extend the core idea by generalizing the cycle by powers of two.&lt;br /&gt;Full details here, with due reference to Floyd - &lt;br /&gt;&lt;a href="http://web.comlab.ox.ac.uk/oucl/work/richard.brent/pd/rpb051i.pdf"&gt;http://web.comlab.ox.ac.uk/oucl/work/richard.brent/pd/rpb051i.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The following from Wikipedia:&lt;br /&gt;Input: n, the integer to be factored; x0, such that 0 ≤ x0 ≤ n; m such that m &gt; 0; and f(x), a pseudo-random function modulo n.&lt;br /&gt;Output: a non-trivial factor of n, or failure.&lt;br /&gt; 1. y ← x0, r ← 1, q ← 1.&lt;br /&gt; 2. Do:&lt;br /&gt; 1. x ← y&lt;br /&gt; 2. For i = 1 To r:&lt;br /&gt; 1. y ← f(y)&lt;br /&gt; 3. k ← 0&lt;br /&gt; 4. Do:&lt;br /&gt; 1. ys ← y&lt;br /&gt; 2. For i = 1 To min(m, r − k):&lt;br /&gt; 1. y ← f(y)&lt;br /&gt; 2. q ← (q × |x − y|) mod n&lt;br /&gt; 3. g ← GCD(q, n)&lt;br /&gt; 4. k ← k + m&lt;br /&gt; 5. Until (k ≥ r or g &gt; 1)&lt;br /&gt; 6. r ← 2r&lt;br /&gt; 3. Until g &gt; 1&lt;br /&gt; 4. If g = n then&lt;br /&gt; 1. Do:&lt;br /&gt; 1. ys ← f(ys)&lt;br /&gt; 2. g ← GCD(|x − ys|, n)&lt;br /&gt; 2. Until g &gt; 1&lt;br /&gt; 5. If g = n then return failure, else return g&lt;br /&gt;&lt;br /&gt;Also, the pseudocode immediately below is taken from a PD document by Connelly Barnes of Oregon State University&lt;br /&gt;&lt;a href="http://oregonstate.edu/~barnesc/documents/factoring.pdf"&gt;http://oregonstate.edu/~barnesc/documents/factoring.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;function brentFactor(N) &lt;br /&gt;  # Initial values x(i) and x(m) for i = 0. &lt;br /&gt;  xi  := 2 &lt;br /&gt;  xm  := 2 &lt;br /&gt;  for i from 1 to infinity &lt;br /&gt;    # Find x(i) from x(i-1). &lt;br /&gt;    xi := (xi ^ 2 + 1) % N &lt;br /&gt;    s := gcd(xi - xm, N) &lt;br /&gt;    if s &lt;&gt; 1 and s &lt;&gt; N then &lt;br /&gt;      return s, N/s &lt;br /&gt;    end if &lt;br /&gt;    if integralPowerOf2(i) then &lt;br /&gt;      xm := xi &lt;br /&gt;    end if &lt;br /&gt;  end do &lt;br /&gt;end function &lt;br /&gt;&lt;br /&gt;Here is its Java implementation from superfac9:&lt;br /&gt;&lt;br /&gt; BigInteger factorizebrent(BigInteger n) {&lt;br /&gt;  BigInteger k = new BigInteger("1");&lt;br /&gt;  BigInteger r = new BigInteger("1");&lt;br /&gt;  BigInteger i = new BigInteger("1");&lt;br /&gt;  BigInteger m = new BigInteger("1");&lt;br /&gt;  BigInteger iter = new BigInteger("1");&lt;br /&gt;  BigInteger z = new BigInteger("1");&lt;br /&gt;  BigInteger x = new BigInteger("1");&lt;br /&gt;  BigInteger y = new BigInteger("1");&lt;br /&gt;  BigInteger q = new BigInteger("1");&lt;br /&gt;  BigInteger ys = new BigInteger("1");&lt;br /&gt;&lt;br /&gt;  m=TEN;&lt;br /&gt;  r=ONE;&lt;br /&gt;  iter=ZERO;&lt;br /&gt;  z=ZERO;&lt;br /&gt;  y=z;&lt;br /&gt;  q=ONE;&lt;br /&gt;&lt;br /&gt;  do {&lt;br /&gt;   x=y;&lt;br /&gt;   for (i=ONE;i.compareTo(r)&lt;=0;i=i.add(ONE)) y=((y.multiply(y)).add(THREE)).mod(n);&lt;br /&gt;   k=ZERO;&lt;br /&gt;   do {&lt;br /&gt;    iter=iter.add(ONE);&lt;br /&gt;//    System.out.print("iter=" + iter.toString() + '\r');&lt;br /&gt;    ys=y;&lt;br /&gt;    for (i=ONE;i.compareTo(mr_min(m,r.subtract(k)))&lt;=0;i=i.add(ONE)) {&lt;br /&gt;     y=((y.multiply(y)).add(THREE)).mod(n);&lt;br /&gt;     q=((y.subtract(x)).multiply(q)).mod(n);&lt;br /&gt;    }&lt;br /&gt;    z=n.gcd(q);&lt;br /&gt;    k=k.add(m);&lt;br /&gt;   } while (k.compareTo(r)&lt;0 &amp;&amp; z.compareTo(ONE)==0);&lt;br /&gt;   r=r.multiply(TWO);&lt;br /&gt;  } while (z.compareTo(ONE)==0 &amp;&amp; iter.compareTo(TENTHOUSAND)&lt;0);&lt;br /&gt;&lt;br /&gt;  if (z.compareTo(n)==0) do {&lt;br /&gt;   ys=((ys.multiply(ys)).add(THREE)).mod(n);&lt;br /&gt;   z=n.gcd(ys.subtract(x));&lt;br /&gt;  } while (z.compareTo(ONE)==0);&lt;br /&gt;&lt;br /&gt;  return z;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Achievements of this method include the factorization, in 1980, of the eighth Fermat number:&lt;br /&gt;&lt;a href="http://wwwmaths.anu.edu.au/~brent/pub/pub061.html"&gt;http://wwwmaths.anu.edu.au/~brent/pub/pub061.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4554016278717163214?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4554016278717163214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4554016278717163214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4554016278717163214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4554016278717163214'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/brents-method.html' title='Brent&apos;s Method'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2700795741609520512</id><published>2007-11-04T01:04:00.000-07:00</published><updated>2007-11-04T01:05:31.103-08:00</updated><title type='text'>Pollard P-1 Method</title><content type='html'>There is also the Pollard "p-1" method, invented in 1974. It relies on Fermat's Little Theorem.&lt;br /&gt;Here is a Wikipedia article about this method:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Pollard%27s_p_-_1_algorithm"&gt;http://en.wikipedia.org/wiki/Pollard%27s_p_-_1_algorithm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here is its description on the mersenneforum:&lt;br /&gt;&lt;a href="http://mersennewiki.org/index.php/P-1_Factorization_Method"&gt;http://mersennewiki.org/index.php/P-1_Factorization_Method&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, the pseudocode immediately below is taken from a PD document by Connelly Barnes of Oregon State University&lt;br /&gt;&lt;a href="http://oregonstate.edu/~barnesc/documents/factoring.pdf"&gt;http://oregonstate.edu/~barnesc/documents/factoring.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;function pollard_p1(N) &lt;br /&gt;  # Initial value 2^(k!) for k = 0. &lt;br /&gt;  two_k_fact := 1 &lt;br /&gt;  for k from 1 to infinity &lt;br /&gt;    # Calculate 2^(k!) (mod N) from 2^((k-1)!). &lt;br /&gt;    two_k_fact := modPow(two_k_fact, k, N) &lt;br /&gt;    rk := gcd(two_k_fact - 1, N) &lt;br /&gt;    if rk &lt;&gt; 1 and rk &lt;&gt; N then &lt;br /&gt;      return rk, N/rk &lt;br /&gt;    end if &lt;br /&gt;  end for &lt;br /&gt;end function&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2700795741609520512?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2700795741609520512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2700795741609520512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2700795741609520512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2700795741609520512'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/pollard-p-1-method.html' title='Pollard P-1 Method'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4478750861486472749</id><published>2007-11-03T01:28:00.000-07:00</published><updated>2007-11-03T01:29:53.768-07:00</updated><title type='text'>A Random Factorization</title><content type='html'>Below is the factorization of a random 100-digit number.&lt;br /&gt;&lt;br /&gt;First in Pari/GP: (which uses Rho, ECM and MPQS)&lt;br /&gt;[NB the time quoted is process-time, rather than real-time]&lt;br /&gt;? #&lt;br /&gt;   timer = 1 (on)&lt;br /&gt;? factor(905771525917281232131519213461223147373627632478259763073719184206592688398458994971036043749073482)&lt;br /&gt;time = 12mn, 17,641 ms.&lt;br /&gt;%1 = &lt;br /&gt;[2 1]&lt;br /&gt;&lt;br /&gt;[3 1]&lt;br /&gt;&lt;br /&gt;[11 1]&lt;br /&gt;&lt;br /&gt;[18701 1]&lt;br /&gt;&lt;br /&gt;[111977 1]&lt;br /&gt;&lt;br /&gt;[122016508135030794072521 1]&lt;br /&gt;&lt;br /&gt;[3174449800530489735869567 1]&lt;br /&gt;&lt;br /&gt;[16919752823495547077187437987066464785943 1]&lt;br /&gt;&lt;br /&gt;...and then with superfac9:&lt;br /&gt;tiggatoo:~/math james$ time java superfac9 &lt; random100d.txt&lt;br /&gt;[905771525917281232131519213461223147373627632478259763073719184206592688398458994971036043749073482]&lt;br /&gt;wanless...          &lt;br /&gt;brutep:  2&lt;br /&gt;wanless...          &lt;br /&gt;wanless...          &lt;br /&gt;brutep:  3&lt;br /&gt;brutep:  11&lt;br /&gt;ecm...              &lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 18701&lt;br /&gt;aprtcle: 111977&lt;br /&gt;ecm...              &lt;br /&gt;aprtcle: 122016508135030794072521&lt;br /&gt;siqs...             &lt;br /&gt;aprtcle: 3174449800530489735869567&lt;br /&gt;aprtcle: 16919752823495547077187437987066464785943&lt;br /&gt;duration: 27490 seconds&lt;br /&gt;&lt;br /&gt;Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0&lt;br /&gt;        at java.lang.String.charAt(String.java:558)&lt;br /&gt;        at superfac9.main(superfac9.java:192)&lt;br /&gt;&lt;br /&gt;real    458m11.888s&lt;br /&gt;user    59m52.469s&lt;br /&gt;sys     0m29.617s&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4478750861486472749?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4478750861486472749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4478750861486472749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4478750861486472749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4478750861486472749'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/random-factorization.html' title='A Random Factorization'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5305592547978328588</id><published>2007-11-02T00:02:00.001-07:00</published><updated>2007-11-02T00:02:35.069-07:00</updated><title type='text'>Trial Division</title><content type='html'>Perhaps I should have started with this, but...&lt;br /&gt;Trial division is the simplest and most naive of factorization methods.&lt;br /&gt;It _is_ however, the fastest method for easily eliminating very small factors from composite inputs.&lt;br /&gt;Note also, though, interestingly, that in fact it is also just about the only method capable of finding small (or indeed any) factors of really large numbers of specific algebraic form(s), because those algebraic forms can then be calculated modulo the suspected factor, keeping the required calculations small.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Trial_division"&gt;http://en.wikipedia.org/wiki/Trial_division&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, the pseudocode immediately below is taken from a PD document by Connelly Barnes of Oregon State University&lt;br /&gt;&lt;a href="http://oregonstate.edu/~barnesc/documents/factoring.pdf"&gt;http://oregonstate.edu/~barnesc/documents/factoring.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;function trialDivision(N) &lt;br /&gt;  for s from 2 to floor(sqrt(N)) &lt;br /&gt;    if s divides N then &lt;br /&gt;      return s, N/s &lt;br /&gt;    end if &lt;br /&gt;  end for &lt;br /&gt;end function &lt;br /&gt;&lt;br /&gt;Here is its Java implementation (as 'brute' - standing for 'brute force') from superfac9:&lt;br /&gt;&lt;br /&gt;  BigInteger factorizebrute(BigInteger n) {&lt;br /&gt;  BigInteger a = new BigInteger("2");&lt;br /&gt;&lt;br /&gt;  while (a.compareTo(TENTHOUSAND) &lt; 0 &amp;&amp; a.multiply(a).compareTo(n) &lt;= 0) {&lt;br /&gt;   if (n.remainder(a).compareTo(ZERO) == 0)&lt;br /&gt;    return a;&lt;br /&gt;   else&lt;br /&gt;    a = a.add(ONE);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return n;&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5305592547978328588?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5305592547978328588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5305592547978328588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5305592547978328588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5305592547978328588'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/trial-division.html' title='Trial Division'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2576017809402068924</id><published>2007-11-01T10:41:00.000-07:00</published><updated>2007-11-01T10:42:28.058-07:00</updated><title type='text'>P+1 p60</title><content type='html'>This just in... Alex Kruppa is reporting a new, record-size factor, of 60 digits, found with the P+1 method.&lt;br /&gt;Read all about it here:&lt;br /&gt;&lt;a href="http://mersenneforum.org/showthread.php?p=117442#post117442"&gt;http://mersenneforum.org/showthread.php?p=117442#post117442&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2576017809402068924?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2576017809402068924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2576017809402068924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2576017809402068924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2576017809402068924'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/p1-p60.html' title='P+1 p60'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4290958517077367727</id><published>2007-11-01T04:27:00.000-07:00</published><updated>2007-11-01T04:29:14.540-07:00</updated><title type='text'>Wave-particle duality</title><content type='html'>Today I (also) have some musings on the wave-particle duality for you, and its effect on factorization.&lt;br /&gt;Clearly there is a mapping (according to QT), from the wave-to-particle domains, or very equivalently, the time-to-space domains.&lt;br /&gt;As integers get larger, the required precision to express that integer increases - leading to a more efficient representation/manipulation in the wave domain, rather than the particle. Hence FFT-methods for eg Large-integer-multiplication (more on that some other time hopefully).&lt;br /&gt;Note that a so-called quantum computer, would also be operating naturally largely in the wave-domain.&lt;br /&gt;This leads me to the suggestion, that maybe a QC would operate best on native representations of FFTs...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4290958517077367727?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4290958517077367727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4290958517077367727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4290958517077367727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4290958517077367727'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/wave-particle-duality.html' title='Wave-particle duality'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7299200309773484185</id><published>2007-11-01T00:02:00.001-07:00</published><updated>2007-11-01T00:02:34.626-07:00</updated><title type='text'>Russian Peasant</title><content type='html'>'Russian Peasant' is a method for fast exponentiation. It is also known as 'exponentiation by squaring'. The basic idea is to exploit knowledge of the binary expansion of the exponent, by using selective repeated squaring. Depending on the factorization algorithm, and the size of the input number, this can lead to significant performance enhancement.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Exponentiation_by_squaring"&gt;http://en.wikipedia.org/wiki/Exponentiation_by_squaring&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is an on-line demo:&lt;br /&gt;&lt;a href="http://www.math.umbc.edu/~campbell/NumbThy/Class/BasicNumbThy.html#Modular-PowMod"&gt;http://www.math.umbc.edu/~campbell/NumbThy/Class/BasicNumbThy.html#Modular-PowMod&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The classic description is in Knuth (The Art of Computer Programming) 4.6.3&lt;br /&gt;Java code as below:&lt;br /&gt; static BigInteger power(BigInteger x, BigInteger n, BigInteger mod) {  // Knuth 4.6.3 - computes x^n modulo mod    BigInteger N = new BigInteger("0");    BigInteger Y = new BigInteger("0");    BigInteger Z = new BigInteger("0"); &lt;br /&gt;  N=n;    Y=one;    Z=x; &lt;br /&gt;  while (true) {     if (N.remainder(two).compareTo(zero) &gt; 0) {      N=N.divide(two);      Y=Z.multiply(Y).remainder(mod);      if (N.compareTo(zero) == 0)       return Y;     }     else {      N=N.divide(two);     }     Z=Z.multiply(Z).remainder(mod);    }   }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7299200309773484185?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7299200309773484185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7299200309773484185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7299200309773484185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7299200309773484185'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/11/russian-peasant.html' title='Russian Peasant'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-4693789862394320216</id><published>2007-10-31T00:02:00.001-07:00</published><updated>2007-11-04T01:57:39.739-08:00</updated><title type='text'>History of factorization records by sieving methods</title><content type='html'>&lt;a href="http://algo.inria.fr/seminars/sem00-01/morain001.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://algo.inria.fr/seminars/sem00-01/morain001.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;This graph is by Francois Morain. &lt;a href="http://algo.inria.fr/seminars/sem00-01/morain.html"&gt;http://algo.inria.fr/seminars/sem00-01/morain.html&lt;/a&gt;&lt;br /&gt;(image linked to in situ)&lt;br /&gt;The relevant figure is towards the bottom of the article, in Section 4.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-4693789862394320216?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/4693789862394320216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=4693789862394320216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4693789862394320216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/4693789862394320216'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/history-of-factorization-records-by.html' title='History of factorization records by sieving methods'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6297296966861785356</id><published>2007-10-30T00:02:00.001-07:00</published><updated>2008-01-15T13:40:30.551-08:00</updated><title type='text'>Penryn</title><content type='html'>It would appear that Intel's next-generation processors (Penryn) draw up to 40% less power than current CPUs, under full load. :))) Quite welcome I imagine, in the current climate (pun intended :( ).&lt;br /&gt;&lt;a href="http://www.tomshardware.com/2007/10/29/intel_penryn_4ghz_with_air_cooling/page14.html"&gt;http://www.tomshardware.com/2007/10/29/intel_penryn_4ghz_with_air_cooling/page14.html&lt;/a&gt;&lt;br /&gt;This is no doubt due to moving to the smaller 45nm die resolution. Paul Otellini (CEO) has said that Penryn will ship 12 November 2007...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6297296966861785356?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6297296966861785356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6297296966861785356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6297296966861785356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6297296966861785356'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/penryn.html' title='Penryn'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5320985939986874514</id><published>2007-10-29T00:02:00.000-07:00</published><updated>2007-10-29T00:03:03.728-07:00</updated><title type='text'>Coincidence?</title><content type='html'>Is it coincidence that Fermat's method works best with factors close to the square root of the input number, while NFS is particularly good at factoring semiprimes?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5320985939986874514?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5320985939986874514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5320985939986874514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5320985939986874514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5320985939986874514'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/coincidence.html' title='Coincidence?'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-542599203240071049</id><published>2007-10-28T11:39:00.000-07:00</published><updated>2007-10-28T11:40:43.442-07:00</updated><title type='text'>XYYXF Project milestone</title><content type='html'>Congratulations to the XYYXF project, who have just finished their original target of factoring all composites with x and y &lt;=100, after 6 years! The search continues with x and y extended to 150...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xyyxf.at.tut.by/news.html#0"&gt;http://xyyxf.at.tut.by/news.html#0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-542599203240071049?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/542599203240071049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=542599203240071049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/542599203240071049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/542599203240071049'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/xyyxf-project-milestone.html' title='XYYXF Project milestone'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5437843502746444626</id><published>2007-10-28T10:25:00.001-07:00</published><updated>2007-10-28T10:25:36.289-07:00</updated><title type='text'>Daylight Savings Time</title><content type='html'>Now the clocks have gone back, all my ECMNet times are correct again ! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5437843502746444626?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5437843502746444626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5437843502746444626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5437843502746444626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5437843502746444626'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/daylight-savings-time.html' title='Daylight Savings Time'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5115430533358371581</id><published>2007-10-28T10:20:00.000-07:00</published><updated>2007-10-28T10:31:05.732-07:00</updated><title type='text'>Msieve v1.29</title><content type='html'>New version of msieve (by Jason Papadopoulos) now available.&lt;br /&gt;Download from:&lt;br /&gt;&lt;a href="http://www.boo.net/~jasonp/qs.html"&gt;http://www.boo.net/~jasonp/qs.html&lt;/a&gt;&lt;br /&gt;Announcement at:&lt;br /&gt;&lt;a href="http://mersenneforum.org/showthread.php?p=117235#post117235"&gt;http://mersenneforum.org/showthread.php?p=117235#post117235&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5115430533358371581?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5115430533358371581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5115430533358371581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5115430533358371581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5115430533358371581'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/msieve-v129.html' title='Msieve v1.29'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1711529168943285965</id><published>2007-10-28T01:20:00.000-07:00</published><updated>2007-10-28T01:21:15.482-07:00</updated><title type='text'>Fermat's Method</title><content type='html'>This 400-yr old method is the basis for many modern sieving factorization methods.&lt;br /&gt;It relies on the discovery of an expression for the input number, as the difference between two (integral) squares.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Fermat%27s_factorization_method"&gt;http://en.wikipedia.org/wiki/Fermat%27s_factorization_method&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, the pseudocode immediately below is taken from a PD document by Connelly Barnes of Oregon State University&lt;br /&gt;&lt;a href="http://oregonstate.edu/~barnesc/documents/factoring.pdf"&gt;http://oregonstate.edu/~barnesc/documents/factoring.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;function fermatFactor(N) &lt;br /&gt;  for x from ceil(sqrt(N)) to N &lt;br /&gt;    ySquared := x * x - N &lt;br /&gt;    if isSquare(ySquared) then &lt;br /&gt;      y := sqrt(ySquared) &lt;br /&gt;      s := (x - y) &lt;br /&gt;      t := (x + y) &lt;br /&gt;      if s &lt;&gt; 1 and s &lt;&gt; N then &lt;br /&gt;        return s, t &lt;br /&gt;      end if &lt;br /&gt;    end if &lt;br /&gt;  end for &lt;br /&gt;end function &lt;br /&gt;&lt;br /&gt;And here is its Java implementation (from superfac9) [with thanks to DT]:&lt;br /&gt;&lt;br /&gt;   BigInteger factorizefermat(BigInteger n) {&lt;br /&gt;      BigInteger a, bSq;&lt;br /&gt;      long iterations = 1L;&lt;br /&gt;&lt;br /&gt;      a = sqrt(n);&lt;br /&gt;      if(n.mod(a).compareTo(ZERO) == 0) return a;&lt;br /&gt;&lt;br /&gt;      while(iterations&lt;10000000) {&lt;br /&gt;         bSq = a.multiply(a).subtract(n);&lt;br /&gt;         if(fastsquareQ(bSq))&lt;br /&gt;            return a.subtract(sqrt(bSq)); // bSq is a square, factorization found&lt;br /&gt;         a = a.add(ONE);&lt;br /&gt;         iterations++;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      return n;&lt;br /&gt;   }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1711529168943285965?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1711529168943285965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1711529168943285965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1711529168943285965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1711529168943285965'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/fermats-method.html' title='Fermat&apos;s Method'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5560195883027198943</id><published>2007-10-27T00:02:00.001-07:00</published><updated>2008-12-12T23:21:47.632-08:00</updated><title type='text'>Mark Manasse</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_Gnz1PXGiFck/RyLiwM-OoBI/AAAAAAAAABE/aetbyATUtjk/s1600-h/msm.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Gnz1PXGiFck/RyLiwM-OoBI/AAAAAAAAABE/aetbyATUtjk/s320/msm.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5125908643644874770" /&gt;&lt;/a&gt;&lt;br /&gt;Here is a picture of Mark Manasse (reproduced by kind permission), who is notable for his involvement in the factorizations of F9, RSA-110 and RSA-120 in the early 1990's. In fact he helped develop the Number Field Sieve, which counted these numbers among its early successes.&lt;br /&gt;&lt;a href="http://www.std.org/~msm/common/f9paper.pdf"&gt;http://www.std.org/~msm/common/f9paper.pdf&lt;/a&gt;&lt;br /&gt;[Incidentally this paper, above, I see, also explains why WE works on prime-powers...basically Fermat's Little Theorem in combination w/ the Binomial Theorem]&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RSA-110"&gt;http://en.wikipedia.org/wiki/RSA-110&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RSA-120"&gt;http://en.wikipedia.org/wiki/RSA-120&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.std.org/~msm/common/nfspaper.pdf"&gt;http://www.std.org/~msm/common/nfspaper.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5560195883027198943?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5560195883027198943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5560195883027198943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5560195883027198943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5560195883027198943'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/mark-manasse.html' title='Mark Manasse'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gnz1PXGiFck/RyLiwM-OoBI/AAAAAAAAABE/aetbyATUtjk/s72-c/msm.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5854363480231875534</id><published>2007-10-26T00:02:00.001-07:00</published><updated>2007-10-26T00:02:34.589-07:00</updated><title type='text'>"factorization"</title><content type='html'>Here's a bit of a Meta-post:&lt;br /&gt;Regarding the spelling/usage of the word "factorization".&lt;br /&gt;First off note that there is a synonym for "factorization", namely "factoring" - however since this also has a completely unrelated meaning (financial of some sort IIRC), I generally tend to use the longer form, unless it would sound particularly ugly.&lt;br /&gt;Similarly the verb can just be "to factor", instead of "to factorize", however in this case the correct (mathematical) meaning is usually clearer, since it will be associated with an object (eg C127_113_36).&lt;br /&gt;In addition (just to add to the confusion :) there is an alternative _spelling_ of "factorization" as "factorisation" (in British English).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5854363480231875534?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5854363480231875534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5854363480231875534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5854363480231875534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5854363480231875534'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/factorization.html' title='&quot;factorization&quot;'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8417156851732544473</id><published>2007-10-25T00:02:00.001-07:00</published><updated>2008-12-12T23:21:47.863-08:00</updated><title type='text'>Desktop</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_Gnz1PXGiFck/RyA_0s-OoAI/AAAAAAAAAA8/PjX6TUVAmbY/s1600-h/desktop.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Gnz1PXGiFck/RyA_0s-OoAI/AAAAAAAAAA8/PjX6TUVAmbY/s320/desktop.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5125166550605537282" /&gt;&lt;/a&gt;&lt;br /&gt;My desktop is pretty busy at the moment.&lt;br /&gt;Here is a current screen grab.&lt;br /&gt;The windows are (left-to-right):&lt;br /&gt;1) Random-based WEP on (M+2)859433&lt;br /&gt;2) WEP on F7&lt;br /&gt;3) WEP on F8&lt;br /&gt;4) WEP on (M+2)4253&lt;br /&gt;5) msieve (NFS) on C127_113_36 (xyyxf)&lt;br /&gt;6) ECM via ECMNet for xyyxf&lt;br /&gt;7) GGNFS on rsa100&lt;br /&gt;8) GGNFS on C127_113_36&lt;br /&gt;All this on a 1.9GHz G5 (iMac called 'tiggatoo')!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8417156851732544473?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8417156851732544473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8417156851732544473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8417156851732544473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8417156851732544473'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/desktop.html' title='Desktop'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Gnz1PXGiFck/RyA_0s-OoAI/AAAAAAAAAA8/PjX6TUVAmbY/s72-c/desktop.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-7488689400896283557</id><published>2007-10-24T00:02:00.001-07:00</published><updated>2007-10-25T23:11:03.566-07:00</updated><title type='text'>GGNFS on PPC (update)</title><content type='html'>Basically, the problem of "not enough polynomials in mpqs", is fixed in the latest CVS code (0.77.1-20060722) available on Sourceforge (with a separate, preliminary, classical sieve stage).&lt;br /&gt;This is the story of how I succeeded in obtaining, compiling and running it on my iMac G5 (with thanks to Mark Rodenkirch, who responded to my query on the yahoo GGNFS mailing list).&lt;br /&gt;Step 1)&lt;br /&gt;Obtain, compile and install a 64-bit GMP archive (PPC 970)&lt;br /&gt;Step 2)&lt;br /&gt;Download the source code of GGNFS via CVS from Sourceforge, thus:&lt;br /&gt;"cvs -d:pserver:anonymous@ggnfs.cvs.sourceforge.net:/cvsroot/ggnfs checkout -R branch_0"&lt;br /&gt;The source-tree is also available for browsing at:&lt;br /&gt;&lt;a href="http://ggnfs.cvs.sourceforge.net/ggnfs/branch_0/src/"&gt;http://ggnfs.cvs.sourceforge.net/ggnfs/branch_0/src/&lt;/a&gt;&lt;br /&gt;Step 3)&lt;br /&gt;Necessary specifically (atm) for PPC [(probably) not for other architectures]:&lt;br /&gt;tweak/hack the code to include its own implementation [supplied, but disabled] of getline() in if.c by,&lt;br /&gt;a) inserting a suitable declaration for the missing getline() function at the top of file if.c&lt;br /&gt;b) remming out the ifdef (and matching endif) of GGNFS_GNU_MISSING lower down, to actually activate the missing implementation of getline()&lt;br /&gt;(I also investigated other methods of achieving same eg trying to define GGNFS_GNU_MISSING elsewhere to achieve the same effect, but this was the first method that worked.)&lt;br /&gt;Step 4)&lt;br /&gt;Compile with "make ppc_970"&lt;br /&gt;Step 5)&lt;br /&gt;Note that the default implementation of factLat.pl, by which factorizations are actually run, already has the correct path to the binaries, so does not need adjusting, unlike some previous versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-7488689400896283557?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/7488689400896283557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=7488689400896283557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7488689400896283557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/7488689400896283557'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/ggnfs-on-ppc-update.html' title='GGNFS on PPC (update)'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6706022169311786657</id><published>2007-10-23T00:03:00.001-07:00</published><updated>2007-10-23T00:03:57.746-07:00</updated><title type='text'>Fermat number factor search</title><content type='html'>For the very latest on the search for Fermat number factors, checkout George Woltman's page at:&lt;br /&gt;&lt;a href="http://www.mersenne.org/ecmf.htm"&gt;http://www.mersenne.org/ecmf.htm&lt;/a&gt;&lt;br /&gt;Prime95/mprime includes an ECM factoring ability, easily controlled by a single ini file, and is particularly well-suited (and fast!) to looking for factors of larger Fermat (and Mersenneplustwo ;-) numbers. George Woltman even supplies a file of already-known factors of Fermat numbers, that mprime can read, to avoid the time spent re-discovering these (or you can start from scratch without reading-in that file, as a double-check that your set-up is finding factors successfully - this won't affect your ability to also find new factors)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6706022169311786657?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6706022169311786657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6706022169311786657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6706022169311786657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6706022169311786657'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/fermat-number-factor-search.html' title='Fermat number factor search'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5347000999994208199</id><published>2007-10-22T00:02:00.001-07:00</published><updated>2007-10-22T00:02:34.530-07:00</updated><title type='text'>Euclidean Algorithm</title><content type='html'>The Euclidean Algorithm is vital to many factorization algorithms.&lt;br /&gt;It is a very fast method for finding the gcd (greatest common divisor) of two numbers, without actually performing the factorization of either.&lt;br /&gt;This page has pretty much all you need to know about it:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Euclidean_algorithm"&gt;http://en.wikipedia.org/wiki/Euclidean_algorithm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5347000999994208199?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5347000999994208199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5347000999994208199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5347000999994208199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5347000999994208199'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/euclidean-algorithm.html' title='Euclidean Algorithm'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-5229707635682665292</id><published>2007-10-21T00:15:00.000-07:00</published><updated>2007-10-21T00:16:02.668-07:00</updated><title type='text'>"Monte Carlo" method(s)</title><content type='html'>What is a "Monte Carlo" (factorization) method?&lt;br /&gt;Essentially one where luck can play a major part - hence the rather exciting-sounding connection with gambling! This is the case whenever the process is seeded by some (pseudo-or-otherwise) random number generation (eg for the benefit of parallelization), or when there is inherent unpredictability in the algorithm itself.&lt;br /&gt;Note also, that for the Rho method, for example, this Monte Carlo nature of the algorithm results in performance gains caused by a statistical effect akin to the so-called "Birthday Paradox". This latter, in turn, is the term given to the surprisingly high observed probability of at least one coincidence of two different random variables in the same range (eg two or more people's birthdays)&lt;br /&gt;The following Wikipedia link talks about Monte Carlo effect in general:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Monte_Carlo_method"&gt;http://en.wikipedia.org/wiki/Monte_Carlo_method&lt;/a&gt;&lt;br /&gt;and here is a link to the Birthday Paradox:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Birthday_Paradox"&gt;http://en.wikipedia.org/wiki/Birthday_Paradox&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-5229707635682665292?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/5229707635682665292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=5229707635682665292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5229707635682665292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/5229707635682665292'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/monte-carlo-methods.html' title='&quot;Monte Carlo&quot; method(s)'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-1553635835305607902</id><published>2007-10-20T00:02:00.000-07:00</published><updated>2007-10-20T00:03:18.120-07:00</updated><title type='text'>Rho method</title><content type='html'>Today I am going to be talking a little bit about Pollard's Rho algorithm, which, for such an apparently simple algorithm, is surprisingly good at finding moderate-size factors of general numbers.&lt;br /&gt;&lt;br /&gt;Some reference links:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Pollard%27s_rho_algorithm"&gt;http://en.wikipedia.org/wiki/Pollard%27s_rho_algorithm&lt;/a&gt;&lt;br /&gt;[as I mentioned briefly once before]&lt;br /&gt;&lt;a href="http://mersennewiki.org/index.php/Rho_Factorization_Method"&gt;http://mersennewiki.org/index.php/Rho_Factorization_Method&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, the pseudocode immediately below is taken from a PD document by Connelly Barnes of Oregon State University&lt;br /&gt;&lt;a href="http://oregonstate.edu/~barnesc/documents/factoring.pdf"&gt;http://oregonstate.edu/~barnesc/documents/factoring.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;function pollardRho(N) &lt;br /&gt;  # Initial values x(i) and x(2*i) for i = 0. &lt;br /&gt;  xi  := 2 &lt;br /&gt;  x2i := 2 &lt;br /&gt;  do &lt;br /&gt;    # Find x(i+1) and x(2*(i+1)) &lt;br /&gt;    xiPrime  := xi ^ 2 + 1 &lt;br /&gt;    x2iPrime := (x2i ^ 2 + 1) ^ 2 + 1 &lt;br /&gt;    # Increment i: change our running values for x(i), x(2*i). &lt;br /&gt;    xi  := xiPrime % N &lt;br /&gt;    x2i := x2iPrime % N &lt;br /&gt;    s := gcd(xi - x2i, N) &lt;br /&gt;    if s &lt;&gt; 1 and s &lt;&gt; N then &lt;br /&gt;      return s, N/s &lt;br /&gt;    end if &lt;br /&gt;  end do &lt;br /&gt;end function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Rho method is also the main method used by GMP's demo factorization sample program (or was last time I looked) - immediately below:&lt;br /&gt;&lt;br /&gt;void&lt;br /&gt;factor_using_pollard_rho (mpz_t n, int a_int, unsigned long p)&lt;br /&gt;{&lt;br /&gt;  mpz_t x, x1, y, P;&lt;br /&gt;  mpz_t a;&lt;br /&gt;  mpz_t g;&lt;br /&gt;  mpz_t t1, t2;&lt;br /&gt;  int k, l, c, i;&lt;br /&gt;&lt;br /&gt;  if (flag_verbose)&lt;br /&gt;    {&lt;br /&gt;      printf ("[pollard-rho (%d)] ", a_int);&lt;br /&gt;      fflush (stdout);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  mpz_init (g);&lt;br /&gt;  mpz_init (t1);&lt;br /&gt;  mpz_init (t2);&lt;br /&gt;&lt;br /&gt;  mpz_init_set_si (a, a_int);&lt;br /&gt;  mpz_init_set_si (y, 2);&lt;br /&gt;  mpz_init_set_si (x, 2);&lt;br /&gt;  mpz_init_set_si (x1, 2);&lt;br /&gt;  k = 1;&lt;br /&gt;  l = 1;&lt;br /&gt;  mpz_init_set_ui (P, 1);&lt;br /&gt;  c = 0;&lt;br /&gt;&lt;br /&gt;  while (mpz_cmp_ui (n, 1) != 0)&lt;br /&gt;    {&lt;br /&gt;S2:&lt;br /&gt;      if (p != 0)&lt;br /&gt; {&lt;br /&gt;   mpz_powm_ui (x, x, p, n); mpz_add (x, x, a);&lt;br /&gt; }&lt;br /&gt;      else&lt;br /&gt; {&lt;br /&gt;   mpz_mul (x, x, x); mpz_add (x, x, a); mpz_mod (x, x, n);&lt;br /&gt; }&lt;br /&gt;      mpz_sub (t1, x1, x); mpz_mul (t2, P, t1); mpz_mod (P, t2, n);&lt;br /&gt;      c++;&lt;br /&gt;      if (c == 20)&lt;br /&gt; {&lt;br /&gt;   c = 0;&lt;br /&gt;   mpz_gcd (g, P, n);&lt;br /&gt;   if (mpz_cmp_ui (g, 1) != 0)&lt;br /&gt;     goto S4;&lt;br /&gt;   mpz_set (y, x);&lt;br /&gt; }&lt;br /&gt;S3:&lt;br /&gt;      k--;&lt;br /&gt;      if (k &gt; 0)&lt;br /&gt; goto S2;&lt;br /&gt;&lt;br /&gt;      mpz_gcd (g, P, n);&lt;br /&gt;      if (mpz_cmp_ui (g, 1) != 0)&lt;br /&gt; goto S4;&lt;br /&gt;&lt;br /&gt;      mpz_set (x1, x);&lt;br /&gt;      k = l;&lt;br /&gt;      l = 2 * l;&lt;br /&gt;      for (i = 0; i &lt; k; i++)&lt;br /&gt; {&lt;br /&gt;   if (p != 0)&lt;br /&gt;     {&lt;br /&gt;       mpz_powm_ui (x, x, p, n); mpz_add (x, x, a);&lt;br /&gt;     }&lt;br /&gt;   else&lt;br /&gt;     {&lt;br /&gt;       mpz_mul (x, x, x); mpz_add (x, x, a); mpz_mod (x, x, n);&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;      mpz_set (y, x);&lt;br /&gt;      c = 0;&lt;br /&gt;      goto S2;&lt;br /&gt;S4:&lt;br /&gt;      do&lt;br /&gt; {&lt;br /&gt;   if (p != 0)&lt;br /&gt;     {&lt;br /&gt;       mpz_powm_ui (y, y, p, n); mpz_add (y, y, a); &lt;br /&gt;     }&lt;br /&gt;   else&lt;br /&gt;     {&lt;br /&gt;       mpz_mul (y, y, y); mpz_add (y, y, a); mpz_mod (y, y, n);&lt;br /&gt;     }&lt;br /&gt;   mpz_sub (t1, x1, y); mpz_gcd (g, t1, n);&lt;br /&gt; }&lt;br /&gt;      while (mpz_cmp_ui (g, 1) == 0);&lt;br /&gt;&lt;br /&gt;      if (!mpz_probab_prime_p (g, 3))&lt;br /&gt; {&lt;br /&gt;   do&lt;br /&gt;            {&lt;br /&gt;              mp_limb_t a_limb;&lt;br /&gt;              mpn_random (&amp;a_limb, (mp_size_t) 1);&lt;br /&gt;              a_int = (int) a_limb;&lt;br /&gt;            }&lt;br /&gt;   while (a_int == -2 || a_int == 0);&lt;br /&gt;&lt;br /&gt;   if (flag_verbose)&lt;br /&gt;     {&lt;br /&gt;       printf ("[composite factor--restarting pollard-rho] ");&lt;br /&gt;       fflush (stdout);&lt;br /&gt;     }&lt;br /&gt;   factor_using_pollard_rho (g, a_int, p);&lt;br /&gt;   break;&lt;br /&gt; }&lt;br /&gt;      else&lt;br /&gt; {&lt;br /&gt;   mpz_out_str (stdout, 10, g);&lt;br /&gt;   fflush (stdout);&lt;br /&gt;   fputc (' ', stdout);&lt;br /&gt; }&lt;br /&gt;      mpz_div (n, n, g);&lt;br /&gt;      mpz_mod (x, x, n);&lt;br /&gt;      mpz_mod (x1, x1, n);&lt;br /&gt;      mpz_mod (y, y, n);&lt;br /&gt;      if (mpz_probab_prime_p (n, 3))&lt;br /&gt; {&lt;br /&gt;   mpz_out_str (stdout, 10, n);&lt;br /&gt;   fflush (stdout);&lt;br /&gt;   fputc (' ', stdout);&lt;br /&gt;   break;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  mpz_clear (g);&lt;br /&gt;  mpz_clear (P);&lt;br /&gt;  mpz_clear (t2);&lt;br /&gt;  mpz_clear (t1);&lt;br /&gt;  mpz_clear (a);&lt;br /&gt;  mpz_clear (x1);&lt;br /&gt;  mpz_clear (x);&lt;br /&gt;  mpz_clear (y);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This Java code is taken directly from superfac9:&lt;br /&gt;&lt;br /&gt; BigInteger factorizerho(BigInteger n) {&lt;br /&gt;  BigInteger loop = new BigInteger("1");&lt;br /&gt;  BigInteger x = new BigInteger("5");&lt;br /&gt;  BigInteger y = new BigInteger("2");&lt;br /&gt;&lt;br /&gt;  while (n.gcd(x.subtract(y)).compareTo(ONE) == 0 &amp;&amp; loop.compareTo(TENTHOUSAND) &lt; 0) {&lt;br /&gt;   x = x.multiply(x).add(ONE).mod(n);&lt;br /&gt;   x = x.multiply(x).add(ONE).mod(n);&lt;br /&gt;   y = y.multiply(y).add(ONE).mod(n);&lt;br /&gt;   loop = loop.add(ONE);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return n.gcd(x.subtract(y));&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that there are several variants (given different start-point values for x and y for example), but the basic "Monte-Carlo" principle remains the same.&lt;br /&gt;&lt;br /&gt;Notable successes with the Rho method or its variants include Brent and Pollard's factorization of the eighth Fermat number in 1980. The 16-digit factor of F8 took about 2 hours to find on a UNIVAC 1100/42, apparently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-1553635835305607902?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/1553635835305607902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=1553635835305607902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1553635835305607902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/1553635835305607902'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/rho-method.html' title='Rho method'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-2806265208530544742</id><published>2007-10-19T00:02:00.001-07:00</published><updated>2007-10-19T00:02:34.205-07:00</updated><title type='text'>F12-WEP</title><content type='html'>And here is the WEP algorithm running (unsuccessfully) for an hour or so looking for new factors of F12:&lt;br /&gt;&lt;br /&gt;tiggatoo:~/math/wec james$ time ./factorize3.gmp -P4096 -T1000 114689 26017793 63766529&lt;br /&gt;P4096   T1000&lt;br /&gt;&lt;br /&gt;real    59m16.287s&lt;br /&gt;user    12m32.262s&lt;br /&gt;sys     0m4.508s&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-2806265208530544742?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/2806265208530544742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=2806265208530544742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2806265208530544742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/2806265208530544742'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/f12-wep.html' title='F12-WEP'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8282880009945894225</id><published>2007-10-18T00:40:00.001-07:00</published><updated>2007-10-18T00:40:45.952-07:00</updated><title type='text'>M521^2 by WE</title><content type='html'>Here is a factorization illustrating the automatic algebraic factoring capability of superfac9, due to WE algorithm:&lt;br /&gt;&lt;br /&gt;tiggatoo:~/math james$ java superfac9 &lt;br /&gt;f(2^521-1)^2&lt;br /&gt;&lt;br /&gt;[47125446914534694131579097993419809976955095716785201420286055195012674566357244479460731079205201122720511132925006540350105785156086431086764996857554304847155991333706718342307167456986269662311038377104760933477381254100896222805785374204495333936040246318307567782851014765052850751581472024524956029996236801]&lt;br /&gt;wanless...          &lt;br /&gt;aprtcle: 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151&lt;br /&gt;aprtcle: 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151&lt;br /&gt;duration: 115 seconds&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8282880009945894225?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8282880009945894225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8282880009945894225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8282880009945894225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8282880009945894225'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/m5212-by-we.html' title='M521^2 by WE'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-8800120021416297651</id><published>2007-10-17T00:01:00.000-07:00</published><updated>2007-10-17T00:02:28.406-07:00</updated><title type='text'>Near-repdigit factorization(s)</title><content type='html'>And speaking of repunits (or repdigits - the factorization of these latter reduce to the former), there is also Makoto Kamada's page of factorizations of near-repdigits.&lt;br /&gt;&lt;a href="http://homepage2.nifty.com/m_kamada/math/factorizations.htm"&gt;http://homepage2.nifty.com/m_kamada/math/factorizations.htm&lt;/a&gt;&lt;br /&gt;Clearly this enlarges the options for factoring candidates significantly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-8800120021416297651?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/8800120021416297651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=8800120021416297651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8800120021416297651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/8800120021416297651'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/near-repdigit-factorizations.html' title='Near-repdigit factorization(s)'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7112657156387828962.post-6813153787752708930</id><published>2007-10-16T00:02:00.000-07:00</published><updated>2007-10-16T00:03:18.163-07:00</updated><title type='text'>Repunit factorization</title><content type='html'>Here is a link to Yousuke Koide's page on repunit factorization(s). Repunits are numbers specifically whose decimal representation consists of all 1's.&lt;br /&gt;&lt;a href="http://www.h4.dion.ne.jp/~rep/"&gt;http://www.h4.dion.ne.jp/~rep/&lt;/a&gt;&lt;br /&gt;It would appear that the lowest repunit whose prime factorization is yet unknown, is R239 (see also Torbjorn Granlund's page at Swox).&lt;br /&gt;&lt;a href="http://swox.com/~tege/fac10m.txt"&gt;http://swox.com/~tege/fac10m.txt&lt;/a&gt;&lt;br /&gt;[Note that Swox is the organization behind the widely-used GMP math library&lt;br /&gt;&lt;a href="http://gmplib.org/"&gt;http://gmplib.org/&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7112657156387828962-6813153787752708930?l=factorization.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://factorization.blogspot.com/feeds/6813153787752708930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7112657156387828962&amp;postID=6813153787752708930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6813153787752708930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7112657156387828962/posts/default/6813153787752708930'/><link rel='alternate' type='text/html' href='http://factorization.blogspot.com/2007/10/repunit-factorization.html' title='Repunit factorization'/><author><name>James Wanless</name><uri>http://www.blogger.com/profile/13020755361829686223</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
