C'est un "programme qui détermine si l'entier d'entrée n est un nombre premier ou un nombre composé" que j'ai créé après avoir étudié Python et appris la syntaxe de base. Je l'écris aussi comme mon propre journal. Je pense qu'il reste encore de nombreux points à atteindre, mais j'apprécierais tout conseil.
La méthode de détermination du nombre premier cette fois était basée sur le fait que «pour l'entrée n, si la fraction de n n'est pas un nombre premier jusqu'à √n, c'est un nombre premier». Voir ci-dessous pour une preuve détaillée. [Preuve que n est un nombre premier si le entier naturel n n'est pas divisible par tous les nombres premiers inférieurs ou égaux à √n](https://cartman0.hatenablog.com/entry/2017/10/23/%E8%87%AA % E7% 84% B6% E6% 95% B0n% E3% 81% 8C% E2% 88% 9An% E4% BB% A5% E4% B8% 8B% E3% 81% AE% E3% 81% 99% E3 % 81% B9% E3% 81% A6% E3% 81% AE% E7% B4% A0% E6% 95% B0% E3% 81% A7% E5% 89% B2% E3% 82% 8A% E5% 88 % 87% E3% 82% 8C% E3% 81% AA% E3% 81% 91% E3% 82% 8C)
import math
from sympy import primerange
n = int(input("Entrez le nombre que vous souhaitez vérifier s'il s'agit d'un nombre premier.>> "))
num = int(math.sqrt(n)) + 1
primlist = list(primerange(2,num)) #1
for i in primlist: #2
if n % i == 0: #3
print("Le nombre de composites.")
break
elif i == primlist[-1] :
print("C'est un nombre premier.")
J'ai fait un jugement sur les nombres premiers pour la première fois, mais je suis personnellement satisfait de quelque chose qui fonctionne. Cependant, à mesure que n devient plus grand (plus de 7 chiffres), la vitesse de calcul devient plus lente, donc je voudrais l'améliorer d'une manière ou d'une autre. De plus, si vous y réfléchissez, vous n'avez pas besoin d'utiliser les mathématiques, alors j'aimerais y remédier. C'est mon premier programme autodidacte, donc je le laisse comme mémorial cette fois. Je pense qu'il est possible de décomposer les facteurs premiers à l'aide de ce programme, j'aimerais donc le modifier. Merci d'avoir lu jusqu'au bout.
Recommended Posts