Hilfe bei Java Programm

Sorry, wurde beim editieren gestört, daher nocheimal (siehe auch erster Post).

Die Zahl muss durch 5 und durch 2 teilbar sein. Daher muss sie auch durch 10 teilbar sein. Jede durch 10 teilbare Zahl endet mit einer 0. Die 0 darf nur einmal vorkommen. Aus den vorherigen Bedingungen folgt, die letzte Ziffer ist 0, alle anderen sind von 0 verschieden.

Damit kann man sich auch die tests gegen Teilbarkeit durch 2 und 5 sparen. Durch 3 und 9 sind sie sowieso teilbar (alle so gebildeten Zahlen, siehe Quersumme). Da sie damit durch 2 und durch 3 teilbar sind, sind alle Zahlen mit 0 am Ende auch durch 6 teilbar. Bleiben nur noch die tests ob die Zahl durch 4, 7 oder 8 teilbar sind.
 
Zuletzt bearbeitet:
Also irgendwie komm ich da nicht mit, sorry brauch manchmal ein bisschen länger,
aber was ist mit den Ziffern die nicht auf 0 enden die haben dann die 0 innerhalb der
Zahl(jede Zahl muss alle Ziffern enthalten) und diese werden meiner Ansicht nach in
deinem Programm nicht berücksichtigt, bei dir werden nur die Zahlen berücksichtigt
die auf eine 0 enden aber diejenige die eine 0 mittendrin haben, die werden bei dir
gar nicht als Permutation generiert, zumindest meiner Ansicht nach.
Du kannst mir ja maal den Output zeigen, wenn ichs glaube versteh ichs vielleicht
auch ehr.

Gruß

RedWing
 
Das ist ja richtig. Die werden nicht als Permutationen erzeugt. Aber auch nur deshalb, weil keine solche Zahl (mit einer 0 in der Mitte) durch alle Ziffern von 1 bis 9 teilbar ist. Und nur solche Zahlen sind ja gesucht.

Die Grundfrage war ja: finde alle 10 stelligen Zahlen die eine Permutation der Ziffern von 0 bis 9 sind und die durch die Zahlen 1 bis 9 teilbar sind.

Teilbar duch 1 sind alle Zahlen.
Durch 2 teilbar sind nur die Zahlen die auf 2, 4, 6, 8 und 0 enden
Durch 3 teilbar sind alle Zahlen mit Quersumme durch 3 teilbar.
Durch 4 teilbar: keine einfache Regel
Durch 5 teilbar: alle Zahlen die auf 0 oder 5 enden.
...
Durch 9 teilbar: alle Zahlen mit Quesumme durch 9 teilbar.

Alle Zahlen die durch Permutation der Ziffern 0-9 entstehen haben als Quersumme 45 und sind damit durch 3 und durch 9 teilbar.

Alle Zahlen die auf 0 enden - und nur diese - sind durch 5 und durch 2 teilbar. Da aber die Teilbarkeit durch 2 und durch 5 gefordert ist, muss die Zahl auf 0 enden. Damit kann ich alle Permutationen die diese Bedingung nicht erfüllen rauswerfen. Und das habe ich getan.
Reduziert die Anzahl von 10! auf 9! - also auf ein Zehntel.
Gleichzeitig muss nicht mehr durch 1, 2, 3, 5, 6 (2 und 3) sowie 9 geteilt werden, da die erzeugten Zahlen schon durch diese Zahlen teilbar sind (ein test würde immer true liefern).
 
Zurück