Java :: Aufgabe #65 :: Lösung #3

5 Lösungen Lösungen öffentlich
#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
#3
1x
vote_ok
von ElPapito (2690 Punkte) - 28.04.2015 um 15:59 Uhr
Quellcode ausblenden Java-Code

/**
 * @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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2618482

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.