Java :: Aufgabe #65 :: Lösung #3
5 Lösungen
#65
Finde die erste Zahl die durch alle Zahlen bis 30teilbar ist
Fortgeschrittener - Java
von 96fabi
- 25.09.2014 um 09:01 Uhr
Gesucht wird die erste Zahl, die durch alle Zahlen bis 30 geteilt werden kann(1-30).
Zum Einstieg kann man erstmal die erste Zahl suchen , die durch alle Werte bis 20 geteilt werden kann.
Dieses ist 232792560
Zum Einstieg kann man erstmal die erste Zahl suchen , die durch alle Werte bis 20 geteilt werden kann.
Dieses ist 232792560
#3
von ElPapito (2690 Punkte)
- 28.04.2015 um 15:59 Uhr
/**
* @author ElPapito
* @date 28.04.2015
*/
public class FindeZahl {
public static void main(String[] args) {
int max = 30;
int[] exp = new int[max + 1]; // 0 und 1 werden nicht genutzt
for (int i = 2; i <= max; i++) {
int tmp = i;
for (int j = 2; j <= max; j++) { // Zerlege tmp in Primfaktoren
int e = 0;
while (tmp % j == 0) { // Berechne exponent für e Primfaktor j
e = e + 1;
tmp = tmp / j;
}
if (e > exp[j]) { // Teste ob e maximaler Exponent für Primfaktor j
exp[j] = e;
}
}
}
long lcm = 1;
for (int i = 2; i <= max; i++) {
lcm = lcm * (long) Math.pow(i, exp[i]);
}
System.out.println("Lösung: " + lcm); // Lösung: 2329089562800
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
