[Python] Wie man den Bruchteil einer natürlichen Zahl mit hoher Geschwindigkeit erhält

Einführung

Vielen Dank für das Lesen dieses Artikels! !! Dies ist ** Nakazon **, der im Juni 2020 sein Programmdebüt feierte!

Es ist meine tägliche Routine, mindestens 5 AtCorder A-D-Probleme zu lösen.

In meinem Artikel aus der Sicht eines Programmieranfängers Lernen und Schwierigkeiten, die durch tägliche Routinen entdeckt wurden Ich möchte Ihnen sagen, worüber ich mich gefreut habe.

Ich werde versuchen, einen Artikel zu schreiben, den die gleichen Anfänger lernen können! Fortgeschrittene beobachten mit warmen Augen und Wir freuen uns auf Ihre positive Weisheit und Beratung!

Kommen wir zum heutigen Inhalt! !!

Problem

Klicken Sie hier für die Probleme, die zum heutigen Lernen geführt haben

C - Walk on Multiplication Table https://atcoder.jp/contests/abc144/tasks/abc144_c

image.png

Unter Berücksichtigung von N = 10 im Beispiel gibt es zwei Kandidaten für i und j, (1, 10) und (2, 5). Betrachten Sie die Kombination von i und j, die N = i * j mit dem kleinsten i + j erfüllt. Dann, als ich dachte: "Lass uns die Nummer holen!" Ich falle in den Zustand "Was? Was soll ich tun?" .. .. Lol

So erhält man den Bruchteil der natürlichen Zahl N! !!

Da N maximal 10 ** 12 ist, ist es nicht möglich, alle von 1 mit einer for-Anweisung zu suchen Es dauert zu lange, also müssen Sie es sich ausdenken.

qiita.rb


N = int(input())
divisors = []
for i in range(1, int(N**0.5)+1):
    if N % i == 0:
        divisors.append(i)
        if i != N // i:
            divisors.append(N//i)

divisors.sort()

Wenn Sie so nach √N (dem Wendepunkt der Zahl) suchen Der Punkt ist, dass Sie alle Brüche erhalten können.

Schließlich

Ich möchte eine Person sein, die mit einem solchen Algorithmuselement bemerkt. Es ist erstaunlich zu bemerken

Recommended Posts

[Python] Wie man den Bruchteil einer natürlichen Zahl mit hoher Geschwindigkeit erhält
So erstellen Sie große Dateien mit hoher Geschwindigkeit
So erhalten Sie Elemente vom Typ Wörterbuch von Python 2.7
So ermitteln Sie die Anzahl der Stellen in Python
So mischen Sie einen Teil der Python-Liste (at random.shuffle)
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Wie man mit Pythons Selen in Sekundenschnelle kratzt
[Python] Finden Sie die Anzahl der Fibonacci mit hoher Geschwindigkeit (Memoisierung, dynamische Planungsmethode)
So erhalten Sie die Python-Version
Erste Schritte mit Python
[Python] Konvertiert natürliche Zahlen in Ordnungszahlen
So beschleunigen Sie Python-Berechnungen
[Python] So erhalten Sie den ersten und den letzten Tag des Monats
Wie man die schöne Suppeninstanziierung beschleunigt
[Python] So zeigen Sie Zufallszahlen an (Zufallsmodul)
Wie man lange Einschlüsse loswird
Wie bekomme ich Stacktrace in Python?
[Python2.7] Zusammenfassung der Verwendung von unittest
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
[Frage] Wie verwende ich plot_surface von Python?
[Python] Verwendung von zwei Arten von type ()
Zusammenfassung zum Importieren von Dateien in Python 3
Zusammenfassung der Verwendung von MNIST mit Python
So legen Sie Attribute mit Mock of Python fest
So erhalten Sie die Dateien im Ordner [Python]
Geschwindigkeit: Element am Ende des Python-Arrays hinzufügen
Hinweis: So erhalten Sie den letzten Tag des Monats mit Python (hinzugefügt am ersten Tag des Monats)
[Flask + Keras] So schließen Sie mehrere Modelle mit hoher Geschwindigkeit auf dem Server ab
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
So erhalten Sie den Variablennamen selbst in Python
So installieren Sie Python
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
PostgreSQL - Für Sie, die mit hoher Geschwindigkeit EINFÜGEN möchten
So installieren Sie Python
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
So konvertieren Sie Gleitkommazahlen in Python in Binärzahlen
Verwendung von Python Kivy ~ ~ Grundlagen der Kv-Sprache ~
So fügen Sie einer PDF-Datei Seitenzahlen hinzu (in Python)
Wie man mit Python-Flüchen ein Urteil über das Mausrad erhält
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
python, php, ruby Konvertieren von Dezimalzahlen in n
[Python] Ich habe versucht, Json von Tintenfischring 2 zu bekommen
Führen Sie mit Python eine Konvertierung in halber und voller Breite mit hoher Geschwindigkeit durch
Beispiel für das Aggregieren einer großen Menge von Zeitreihendaten mit Python in einer kleinen Speicherumgebung mit einer angemessenen Geschwindigkeit
[Frage] So erhalten Sie die Daten von Textbereichsdaten in Echtzeit mithilfe der Python-Webframework-Flasche
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)
So erhöhen Sie die Verarbeitungsgeschwindigkeit der Erfassung der Scheitelpunktposition
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
[Linux] [C / C ++] Zusammenfassung, wie man pid, ppid, tid bekommt
[Python] So legen Sie Variablennamen dynamisch fest und vergleichen die Geschwindigkeit
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Ich habe versucht "Wie man eine Methode in Python dekoriert"
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung