π
<-

Déterminer le nième nombre premier.

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Re: Déterminer le nième nombre premier.

Unread postby parisse » 07 Mar 2021, 20:38

Il n'y a pas lieu de calculer un n2 ici.
Il vaut mieux a mon avis tester la parite en premier et utiliser une boucle for qu'une boucle while dans un cas comme celui-ci, ca evite d'oublier d'incrementer la variable d'indice, donc en Python mettre for k in range(3,n,2): puis utiliser un test et un return: if k*k>n: return 1
En C, tout se fait dans l'instruction for.
Code: Select all
// pour n<2^32
if (n<2) return 0;
if (n%2==0) return n==2;
for (unsigned k=3;k*k<=n;k+=2){
  if (n%k==0) return 0;
}
return 1;

L'astuce d'ajouter 2*k+1 a une variable pour tester ne sert pas reellement ici, car on ne va pas tester de tres grandes valeurs de k, ca prendrait trop de temps, disons pas plus que 2^16 en pratique, donc k*k va se faire en multipliant des entiers 32 bits, ce qui prend 1 cycle sur les CPU modernes.
Ce qui prend le plus de temps, c'est le calcul du reste euclidien.
Et si on veut optimiser encore plus, on utilise une table de nombres premiers, par exemple <=10000 pour eviter de tester avec des entiers non premiers.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 94%
 
Posts: 3805
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Déterminer le nième nombre premier.

Unread postby Bisam » 10 Mar 2021, 20:38

Mais tu as parfaitement raison : j'ai fait n'importe quoi... Je n'avais pas les yeux en face des trous.

Je corrige dans les messages précédents.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Previous

Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: ClaudeBot [spider] and 19 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3049 utilisateurs:
>3020 invités
>22 membres
>7 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)