Ich bin kürzlich auf ein algorithmisches Problem gestoßen und ich kann das Ende davon nicht erreichen. Sie erhalten eine positive ganze Zahl N < 10^13, und Sie müssen eine nichtnegative ganze Zahl M so wählen, dass die Summe: M N + N (N-1)/2 die kleinste Anzahl von Teilern hat, die dazwischen liegen 1 und N, inklusive. Kann mir jemand die richtige Richtung zeigen, um dieses Problem zu lösen? Vielen Dank für Ihre Zeit.Minimiere Anzahl der Teiler einer ganzen Zahl innerhalb eines Intervalls
0
A
Antwort
5
Suchen Sie eine Primzahl P größer als N. Es gibt eine Reihe von Möglichkeiten, dies zu tun.
Wenn N ungerade ist, dann ist M*N + N*(N-1)/2
ein Vielfaches von N. Es wird von jedem Faktor N teilbar sein muss, aber wenn wir wählen M = P - (N-1)/2
, dann M*N + N*(N-1)/2 = P*N
, so dass es nicht teilbar durch andere ganze Zahlen zwischen 1 und N ist .
Wenn N gerade ist, dann ist M*N + N*(N-1)/2
ein Vielfaches von N/2. Es muss durch irgendeinen Faktor von N/2 teilbar sein, aber wenn wir M = (P - N + 1)/2
wählen (was eine ganze Zahl sein muss), dann M*N + N*(N-1)/2 = (P - N + 1)*N/2 + (N-1)*N/2 = P*N/2
, so ist es nicht teilbar durch andere ganze Zahlen zwischen 1 und N.
Verwandte Themen
- 1. Finden der ganzen Zahl einer Zahl
- 2. Multiples innerhalb des Intervalls
- 3. Wie Anzahl von Bytes in einer ganzen Zahl zählen
- 4. Drucken Teiler einer Zahl in C
- 5. Primäre Teiler einer Zahl in ML
- 6. kleinsten Skalierungsfaktor zu finden, jede Zahl innerhalb eines Zehntels einer ganzen Zahl aus einem Satz von Doppel zu bekommen
- 7. Gefundene Bits einer ganzen Zahl finden
- 8. Drucken einer ganzen Zahl in Englisch
- 9. Update einer ganzen Zahl zwischen Funktionen
- 10. Beispiel einer zufälligen ganzen Zahl in Rcpp
- 11. Formatieren einer ganzen Zahl in C++
- 12. Erhalten letzten drei Ziffern einer ganzen Zahl
- 13. Anzahl der 1s in einer binären Zahl
- 14. Wie finde ich die Anzahl der 9s in einer ganzen Zahl
- 15. Repräsentieren Reihenfolge der Permutation mit einer ganzen Zahl?
- 16. Round String.ValueVon der nächsten ganzen Zahl
- 17. Anzahl der Punkte innerhalb einer Gruppe außerhalb eines Schwellenwerts suchen
- 18. Die Größe in Bytes einer beliebigen ganzen Zahl
- 19. DateTime innerhalb des Intervalls in JodaTime?
- 20. Echo einer ganzen Zahl aus einer mySQL-Datenbank
- 21. Wie würde ich eine einfache rekursive Funktion machen, die die Anzahl der Teiler ausgibt, die eine Zahl hat?
- 22. Hinzufügen einer ganzen Zahl zu allen Werten in einem Tupel
- 23. Vergleichen des Tags einer Ansicht mit einer ganzen Zahl
- 24. Python - Anzahl der ganzen Zahlen in einer Zeichenfolge zählen?
- 25. Anzahl der spezifischen Zeichenfolgen innerhalb einer Zeichenfolge
- 26. Was ist der beste Weg, um alle Teiler einer Zahl zu bekommen?
- 27. Wie kann ich Array-Elemente nach Anzahl der Teiler sortieren?
- 28. Gleiche Ausgabe für Htonl() und Ntohl() auf einer ganzen Zahl
- 29. Wie definiere ich einen Array-Wert aus einer ganzen Zahl?
- 30. C#: das Ergebnis einer negativen ganzen Zahl in ein Byte
Ich stimme um diese Frage als off-topic zu schließen, weil es eine [maths] (http://math.stackexchange.com/) -Frage ist. Oder möglicherweise [compsci] (http://cs.stackexchange.com/). Aber es ist keine Programmierfrage. –