Ich kenne die übliche Art, n-1 Fakultät iterativ zu finden und dann zu überprüfen. Aber das hat eine Komplexität von O (n) und braucht zu viel Zeit für großes n. Gibt es eine Alternative?Gibt es einen schnellen Weg zu finden, wenn (n-1)! ist teilbar durch n?
9
A
Antwort
15
Ja, es gibt: wenn n
ist eine Prime, offensichtlich (n-1)!
ist nicht durch n
teilbar.
Wenn n
keine Primzahl ist und als n = a * b
mit a != b
geschrieben werden, dann ist (n-1)!
teilbar durch n
weil es a
und b
enthält.
Wenn n = 4
ist (n-1)!
nicht teilbar durch n
, aber wenn n = a * a
mit a
eine Primzahl ist> 2, ist (n-1)!
teilbar durch n
weil wir a
und 2a
in (n-1)!
(dank Juhana in den Kommentaren) zu finden.
Verwandte Themen
- 1. Summe durch n teilbar
- 2. Gibt es einen schnellen Weg mit dem Macvim/NERDtree Plugin, um eine Datei zu finden?
- 3. Gibt es einen besseren Weg, morgen Mitternacht zu finden?
- 4. Gibt es einen schnellen und schmutzigen Weg zu Cast PansiChar zu Pchar in Delphi 2009
- 5. Wie viele Zahlen gibt es bis N, die Ziffern 2,3,5 haben und durch 2,3,5 teilbar sind?
- 6. Nicht zusammenhängendes Element teilbar durch n Lösung funktioniert nicht
- 7. Gibt es einen schnellen Weg, um das Steuerelement unter der Maus zu bekommen?
- 8. Gibt es einen idiomatischen Weg, einen Zeiger zu ersetzen?
- 9. Einen Weg durch ein Wörterbuch finden
- 10. Finden Sie die Summe aller Zahlen zwischen 1 und N teilbar durch entweder x oder y
- 11. Java: Gibt es einen einfachen, schnellen Weg, um AND, OR oder XOR zusammen zu setzen?
- 12. Create äußere div wenn Zähler durch 4 teilbar ist
- 13. Gibt es einen schnellen Weg, um jede Verbindung zwischen zwei Entitäten zu bekommen?
- 14. Dynamisch Wege finden, gibt es einen besseren Weg?
- 15. Gibt es einen einfacheren Weg zu finden, ob eine Zeichenkette ** nicht ** null oder leer ist?
- 16. Wie kann ich überprüfen, ob eine Zahl n durch 10 teilbar ist?
- 17. Gibt es eine Möglichkeit, das n-te Zeichen zu finden?
- 18. Gibt es einen Weg in Firebase zu bekommen, wenn E-Mail verifiziert ist?
- 19. Gibt es einen "richtigen" Weg, Vererbung in JavaScript zu machen? Wenn ja, was ist das?
- 20. Gibt es einen besseren Weg, dies zu tun?
- 21. Gibt es einen schnelleren Weg durch Listenverständnis, um durch zwei Datenrahmen zu iterieren?
- 22. Bester/Einfacher Weg, um einen schnellen Bootvorgang zu starten Linux
- 23. Gibt es einen anständigen Vim regexp ODER Befehl? Was ist der beste Weg, um falsch zu finden, wenn es anders ist?
- 24. Zahlen, die durch ihre Bestandteile teilbar sind
- 25. gibt es eine Schnelltaste für den schnellen
- 26. Gibt es einen O (n) Ganzzahl-Sortieralgorithmus?
- 27. Gibt es einen besseren Weg, um Rubys Basisklassen zu "affen"?
- 28. Gibt es einen richtigen Weg, GoogleAppEngine-Sicherheitsberechtigungen zu manipulieren?
- 29. Gibt es einen besseren Weg (C#)?
- 30. Gibt es eine einfache Möglichkeit, (#) zu einem Dateinamen hinzuzufügen, wenn Sie einen doppelten Dateinamen finden?
um es zu finden n ist prime, muss ich nicht iterieren über 1 bis n? – batman
@learner nope, nur von 2 bis 'floor (sqrt (n))'. –
Eine naive Methode wäre, Zahlen zwischen 1 und 'sqrt (n)' (und nicht 'n') zu testen, um zu sehen, ob sie Teiler von' n' sind, aber das ist eine andere Frage (http://stackoverflow.com/questions)/2586596/Schnellster-Algorithmus-für-Primalitäts-Test). – alestanis