Problem 47: Eindeutige Primfaktoren

Gesucht werden die kleinsten vier, aufeinander folgenden Ganzzahlen, die zusammen vier eindeutige Primfaktoren haben! [das englische Original]

Diese Problem konnte ich leider nur mit einer Brute-Force-Methode lösen, die für alle Primzahlen die Anzahl der Primfaktoren ermittelt und so prüft, ob es vier auf einander folgende Zahlen mit 4 eindeutigen Primfaktoren gibt:

@Override
public String solve() {
   int cnt = 0;
   int num = 1;
   int first = 0;
   boolean found = false;
 
   while( !found ) {
      if( primes.contains( num ) ) {
         cnt = 0;
      } else {
         long[] facts = Mathe.getPrimeFactors( num );
         if( facts.length == 4 ) {
            IO.infoln( "found " + num + " with " + IO.join( facts, ", " ) );
            cnt++;
            if( cnt == 1 ) {
               first = num;
            }
            if( cnt == 4 ) {
               found = true;
            }
         } else {
            cnt = 0;
         }
      }
      num++;
   }
 
   return IO.i2s( first );
}

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

<< Problem 46 Übersicht Problem 48 >>

Willkommen in Nico Dannebergs Netzwerk

%d Bloggern gefällt das: