Bonjour j'ai voulu faire une suite qui donnerais les tout nombres premiers dans l'ordre
j'ai partiellement réussi: oui elle donne tout les nombre premiers dans l’ordre cad U0=2; U1=3; U2=5...
Mais non parce qu’en fait j'ai triché ^^ en fait je fais juste un test de primalité sur tout les nombres mais de façon tel que sa apparait sous la forme d'un calcul
Bon le prog est très lourd et le calcul de la suite encore plus mais je suis tomber sur ce problème avant d'avoir pu simplifier l'algo
Voila pour l'explication maintenant le probleme:
► Afficher le texte
Code : Tout sélectionner
Local $Un = 2
For $nb = 1 To 10
;MsgBox(0,"",FonctionFactorielle($Un+10))
$Un = premier_suivant($Un, $nb)
MsgBox(0, $nb, $Un)
Next
Func Afunc($x)
Return Mod(FonctionFactorielle($x - 1) + 1, $x)
EndFunc ;==>Afunc
Func Bfunc($x)
Local $inter = Afunc($x)
Return (1 - ((Abs($inter - 0.1) * Abs($inter + 0.1)) / (($inter - 0.1) * ($inter + 0.1)))) / 2
EndFunc ;==>Bfunc
Func Cfunc($z, $y)
Local $nombre_2 = 0
For $nb_2 = $z To $y
$nombre_2 += Bfunc($nb_2) * $nb_2
Next
Return $nombre_2
EndFunc ;==>C
Func FonctionFactorielle($n)
Local $res
If $n = 0 Then
$res = 1
Else
$res = $n * FonctionFactorielle($n - 1)
EndIf
Return $res
EndFunc ;==>FonctionFactorielle
Func premier_suivant($last, $n)
Local $nombre = 0
Local $c
For $nb = $last + 1 To $last + 10
$c = Cfunc($last + 1, $nb - 1)
If $c = 20 Then MsgBox(0, "warning", $last + 1 & "/" & $nb - 1 & "/" & Cfunc($last + 1, $nb - 1) & "/" & Cfunc(20, 20))
$nombre += Bfunc($nb) * ($nb) * ((1 - (Abs($c - 0.1)) / ($c - 0.1)) / 2)
Next
Return $nombre
EndFunc ;==>premier_suivant
A la ligne 35 lorsque le prog calcul le 8eme nb premier et plus un message affichera pour vous montrer l'erreur:
$last+1 sera=20
$nb-1 sera=20
Cfunc($last+1,$nb-1) sera =20
mais Cfunc(20,20) sera=0
normalement vous avez pu remarque le problème sans moi
j'ai essayer le prog sur un autre PC mais sa donne la même chose...
J’espère que qqn pourra m'aider parce que la je sais vraiment pas quoi faire
