Problem 55: Lychrel-Zahlen

Gesucht wird die Anzahl von Lychrel-Zahlen, die kleiner als 10.000 sind! [das englische Original]

Dieses Problem wird dadurch vereinfacht, dass die maximale Anzahl an Iterationsschritten auf 50 begrenzt ist. Auf Basis meiner Klasse für große Zahlen lassen sich die 10.000 Kandidaten recht schnell auf die gewünschten Bedingungen prüfen:

@Override
public String solve() {
 
   int lychrels = 0;
   LargeNumber one = new LargeNumber( 1 );
   LargeNumber num = new LargeNumber( 9999 );
 
   while( !num.equals( one ) ) {
 
      int step = 0;
      LargeNumber cur = num.clone();
 
      do {
         step++;
         cur = cur.add( cur.reverse() );
      } while( step <= 50 && !cur.isPalindromic() );
 
      if( step == 51 ) {
         IO.infoln( "found " + cur + " from " + num + " in " + step + " steps" );
         lychrels++;
      }
 
      num = num.sub( one );
   }
 
   return IO.i2s( lychrels );
}

Den vollständigen Quellcode der Klasse für die Lösung des Problems 55 kann man sich hier anschauen!

<< Problem 54 Übersicht Problem 56 >>

Willkommen in Nico Dannebergs Netzwerk

%d Bloggern gefällt das: