[Python] Comment obtenir la fraction d'un nombre naturel à grande vitesse

introduction

Merci d'avoir lu cet article! !! Il s'agit de ** Nakazon **, qui a fait ses débuts en programmation en juin 2020!

C'est ma routine quotidienne pour résoudre au moins 5 problèmes AtCorder A-D.

Dans mon article, du point de vue d'un débutant en programmation, Apprentissage et difficultés découvertes à travers les routines quotidiennes Je voudrais vous dire ce qui m'a fait plaisir.

Je vais essayer de faire un article que les mêmes débutants pourront apprendre! Les personnes avancées regardent avec des yeux chaleureux et Nous attendons avec impatience votre sagesse et vos conseils positifs!

Passons au contenu d'aujourd'hui! !!

problème

Cliquez ici pour les problèmes qui ont conduit à l'apprentissage d'aujourd'hui

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

image.png

En considérant N = 10 dans l'exemple, il y a deux candidats pour i et j, (1, 10) et (2, 5). Considérons la combinaison de i et j qui satisfait N = i * j avec le plus petit i + j. Puis, quand j'ai pensé: "Prenons le numéro!" Je tombe dans l'état de "Quoi? Que dois-je faire?" .. .. Lol

Voici comment obtenir la fraction du nombre naturel N! !!

Puisque N est un maximum de 10 ** 12, il n'est pas possible de rechercher tout à partir de 1 avec une instruction for Cela prend trop de temps, vous devez donc le concevoir.

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()

Si vous recherchez √N (le point tournant du nombre) comme ceci Le fait est que vous pouvez obtenir toutes les fractions.

finalement

Je veux être une personne qui remarque avec un tel élément d'algorithme. C’est incroyable de le remarquer

Recommended Posts

[Python] Comment obtenir la fraction d'un nombre naturel à grande vitesse
Comment créer des fichiers volumineux à haute vitesse
Comment obtenir des éléments de type dictionnaire de Python 2.7
Comment obtenir le nombre de chiffres en Python
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Comment obtenir une liste d'exceptions intégrées pour python
Comment gratter en quelques secondes avec le sélénium de Python
[Python] Trouver le nombre de Fibonacci à grande vitesse (mémorisation, méthode de planification dynamique)
Comment obtenir la version Python
Comment démarrer avec Python
[Python] Convertit les nombres naturels en nombres ordinaux
Comment accélérer les calculs Python
[Python] Comment obtenir le premier et le dernier jour du mois
Comment accélérer la belle instanciation de soupe
[Python] Comment afficher des nombres aléatoires (module aléatoire)
Comment se débarrasser des longues inclusions
Comment obtenir stacktrace en python
[Python2.7] Résumé de l'utilisation d'unittest
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
[Question] Comment utiliser plot_surface de python
[Python] Comment utiliser deux types de type ()
Résumé de la façon d'importer des fichiers dans Python 3
Résumé de l'utilisation de MNIST avec Python
Comment spécifier des attributs avec Mock of Python
Comment obtenir les fichiers dans le dossier [Python]
Vitesse: ajouter un élément à la fin du tableau Python
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
[Flask + Keras] Comment déduire plusieurs modèles à grande vitesse sur le serveur
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment obtenir le nom de la variable lui-même en python
Comment installer Python
J'ai essayé de résumer comment utiliser matplotlib de python
PostgreSQL - Pour vous qui voulez INSÉRER à grande vitesse
Comment installer python
Comment écrire un type liste / dictionnaire de Python3
Comment convertir des nombres à virgule flottante en nombres binaires en Python
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
Comment ajouter des numéros de page à un fichier PDF (en Python)
Comment obtenir le verdict de la molette de la souris avec des malédictions Python
[Python] Résumé de la façon de spécifier la couleur de la figure
python, php, ruby Comment convertir un décimal en n
[Python] J'ai essayé d'obtenir Json de squid ring 2
Effectuez une conversion demi-largeur / pleine largeur à grande vitesse avec Python
Exemple d'agrégation d'une grande quantité de données de séries temporelles à l'aide de Python dans un petit environnement de mémoire à une vitesse raisonnable
[Question] Comment obtenir les données des données textarea en temps réel à l'aide du flacon du framework Web Python
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
Comment augmenter la vitesse de traitement de l'acquisition de la position des sommets
Essayez d'obtenir la liste des fonctions du paquet Python> os
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment écrire un exemple d'implémentation E14 Python en temps réel hors ligne
Comment exécuter un fichier Python à une invite de commande Windows 10
[Linux] [C / C ++] Résumé de la façon d'obtenir pid, ppid, tid
[Python] Comment définir des noms de variables dynamiquement et comparer la vitesse
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
J'ai essayé "Comment obtenir une méthode décorée en Python"
Comment développer dans un environnement virtuel Python [Memo]
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment entrer dans l'environnement de développement Python avec Vagrant