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