Je suis désole, je viens de tester vos sources & elles ne fonctionnent pas. Le problème c'est que vous limité la recherche du nombre : vous supprimer seulement les nombre divisible par 2,3,5,7 or en faisant ça, vous n'obtenez pas que des premiers, car vous obtenez 121 & 11*11=121, vous obtenez également 377 & 29*13=377.
ulong [] diviseurs = {2,3,5,7,11};
int z;
ulong y = 1;
for ( y=10000000001; y<= 10000001003 ; y=y+2) // valeur à modif
{
for(z =0; z<=4;z++)
{
if (y % diviseurs[z] == 0)
{
break;
}
if ( z == 4)
{
double dRac = Math.Pow(y, 0.5);
ulong uiEntree= ((ulong)dRac + 1);
byte bVerif = 0;
double dJ = (y / 2) + 1 ;
richTextBox1.Text = "" ;
if ((ulong)dRac == dRac)
{
richTextBox1.Text="Le Nombre : " +y +" N'est Pas Premier : " + dRac + " * " + dRac + " = " + y ;
}
else
{
for (ulong i=2; i<=uiEntree; i++)
{
for (ulong j=2; j<=(ulong)dJ; j++)
{
if ((i * j) == (y))
{
richTextBox1.Text="Le Nombre N'est Pas Premier : " +i +"*" +j +" = " +y;
i = uiEntree;
j = y;
bVerif = 1;
}
if (i==uiEntree && j==(ulong)dJ && bVerif==0)
{
richTextBox1.Text="\n" +y; //
bVerif = 1;
string sIn = richTextBox2.Text;
richTextBox2.Text= sIn + richTextBox1.Text;
}
}
}
}
}
}
y++;
}
}
Cette source que j'ai réalisé (en insérant la votre au dessus) trouve vraiment les nombres premiers. Le seul problème c'est que ça prend beaucoup de temps, mais vous êtes sur à 100% que le nombre soit premier, car le programme va rechercher 2 nombres pour former le soit disant premier.