Page 1 sur 2

Trouver les nombres premiers

Publié : sam. 16/sept./2006 21:05
par SPH
merde effacée

Publié : sam. 16/sept./2006 21:41
par Frenchy Pilou
T'as vu ces listes? :D
Ici tu as la liste des 100 000 premiers nombres premiers :lol:
http://www.gutenberg.org/etext/65.html.utf8

Ici les 5 premiers millions
Les 100 premiers millions :lol:
http://primes.utm.edu/lists/small/
Bonjour les listes :roll:

La Mecque des nombres premiers
:D
http://primes.utm.edu

Publié : sam. 16/sept./2006 22:04
par SPH
Ho, je connais, je te rassure. Pendant 3 mois, nuit et jour, j'ai calculé la primalité d'un nombre long de plus de 10 millions de chiffres !!
J'ai testé : (2^37957511)-1
http://forums.futura-sciences.com/post583046-381.html

Publié : sam. 16/sept./2006 22:32
par Frenchy Pilou
A la main? :lol:
Et pas de bol, il n'en était pas un :roll:
Sauf si la machine s'est plantée :lol:
la suite de Syracuse c'est rigolo aussi :)

Publié : dim. 17/sept./2006 12:25
par Backup
Frenchy Pilou a écrit :la suite de Syracuse c'est rigolo aussi :)
j'ai fais ce prog en suivant l'enoncé du problem de la suite de syracuse
donné ici http://hypo.ge-dip.etat-ge.ch/www/math/html/node5.html

voici le code :



Declare.s paire_impaire(nombre)



depart= 26623 ; entrez un chiffre de depart de la suite de syracuse
debut:
If paire_impaire(depart)= "paire"
  depart=depart/2
Else
  depart=(depart*3)+1
EndIf
Debug depart
If depart >1
   Goto debut
EndIf
End


Procedure.s paire_impaire(nombre) ; Merci Comtois : D
   If nombre % 2 <> 0 ; nombre impaire
    retour$= "impaire"
    
   Else ; nombre paire
    retour$= "paire"
   EndIf
   ProcedureReturn retour$
EndProcedure





:D

Publié : dim. 17/sept./2006 12:46
par Backup
...........

Publié : dim. 17/sept./2006 13:43
par Dr. Dri
@Dobro

pour la parité y'a plus simple... si tu représentes ton nombre sous forme binaire, c'est le chiffre le plus à droite qui te donne la parité. 0 pour pair et 1 pour impair, une macro suffit largement pour ca ^^

Code : Tout sélectionner

Macro impaire(nombre)
  (nombre & 1)
EndMacro

depart= 44854874 ; entrez un chiffre de depart de la suite de syracuse
debut:
If impaire(depart)
  depart=(depart*3)+1
Else
  depart=depart/2
EndIf
Debug depart
If depart >1
   Goto debut
EndIf
End
Dri ;)

Publié : dim. 17/sept./2006 13:47
par Backup
ouaip j'ai pas le reflex Boole :lol:

Publié : dim. 17/sept./2006 15:56
par Frenchy Pilou
@Dobro
Tu nous appelles dès que tu trouves un truc qui ne redescends pas!
C'est la gloire assurée 8)

Sinon en musique super! 8)

Publié : dim. 17/sept./2006 16:53
par Dr. Dri
Frenchy Pilou a écrit :@Dobro
Tu nous appelles dès que tu trouves un truc qui ne redescends pas!
il me semble que jusqu'ici ca a fonctionné avec TOUS les nombres testés et que personne n'a réussi à fournir de démonstration...

Dri ;)

Publié : dim. 17/sept./2006 17:25
par SPH
LOL, ouai dobro, ton code m'a parut compliqué. Moi, je crois que j'ai le code le plus court :

Code : Tout sélectionner

depart=331511

While depart>1
If depart%2=0
depart/2
Else
depart*3+1
EndIf
Debug depart
Wend
Tout simplement :wink:

Publié : dim. 17/sept./2006 18:54
par Backup
SPH a écrit :LOL, ouai dobro, ton code m'a parut compliqué. Moi, je crois que j'ai le code le plus court :
je ne cherchai pas a optimiser !
les concours de celui qui a la plus longue ne m'interresse plus depuis que j'ai découvert qu'avec le bout de la langue on pouvais faire aussi bien !! :lol:

Publié : dim. 17/sept./2006 20:53
par Frenchy Pilou
il me semble que jusqu'ici ca a fonctionné avec TOUS les nombres testés et que personne n'a réussi à fournir de démonstration
Oui mais......
C'est ce qui est le propre d'une conjecture :D
Cela a l'air de marcher mais c'est pas démontré donc il reste une possibilité que cela marche jusqu'à démonstration du contraire :roll:
Puisqu'on peut toujours entrer un nombre un peu plus grand que le plus grand testé :lol:
Misère je voudrais pas être celui qui va chercher la démonstration, il va finir chez les fous à vitesse grand V :D

Publié : sam. 30/sept./2006 21:13
par hzj74
SPH a écrit :Ho, je connais, je te rassure. Pendant 3 mois, nuit et jour, j'ai calculé la primalité d'un nombre long de plus de 10 millions de chiffres !!
J'ai testé : (2^37957511)-1
http://forums.futura-sciences.com/post583046-381.html
Bonsoir,

Pour un programme de calcul sur les grands chiffres, je cherche à savoir si PureBasic est capable de calculer sur des nombres entiers de plus de 200 chiffres (jusqu'à 1000 chiffres maximum... aujourdhui!) sans erreur, ni arrondi ?

merci

Publié : sam. 30/sept./2006 21:25
par SPH
hzj74 a écrit :Bonsoir,

Pour un programme de calcul sur les grands chiffres, je cherche à savoir si PureBasic est capable de calculer sur des nombres entiers de plus de 200 chiffres (jusqu'à 1000 chiffres maximum... aujourdhui!) sans erreur, ni arrondi ?

merci
Oui, tu peux utiliser un tableau pour mettre un nombre de la longueur que tu veux, ou encore utiliser les strings (un code PBOSL te permet de faire des operations sur de grands chiffres)