Informatică, întrebare adresată de pantaziuandrei, 8 ani în urmă

pbinfo #36 90puncte
int i_prim(int n)
{
int p1 , p2 , nr=0;
p1=n-1; p2=n+1;
while (!nr){
nr=1;
for (int i=2; i<=sqrt(p1); i++)
if (p1%i==0)
nr=0;
if (!nr) p1--;
}
nr=0;
while (!nr){
nr=1;
for (int i=2; i<=sqrt(p2); i++)
if (p2%i==0)
nr=0;
if (!nr) p2++;
}
return p2-p1;
}

Răspunsuri la întrebare

Răspuns de Christ
0

bool prim(int n){

   int i;

   bool p = true;

   if (n < 2)

       p = false;

   else if (n != 2 && n%2 == 0)

       p = false;

   else for (i = 3;i*i <= n;i += 2)

 if (n%i == 0)

     p = false;

   return p;

}

int i_prim(int n){

   int a = n+1, b = n-1;

   bool ok = false;

   while (ok == false){

       b++;

    ok = prim(b);

   }

   ok = false;

   while (ok == false){

       a--;

       ok = prim(a);

   }

   return b-a;

}


pantaziuandrei: Poti sa.mi explici ce ai facut?
Christ: subprogramul prim afla daca un numar este prim
Christ: a reprezinta cel mai mic numar prim mai mare decat n
Christ: b este cel mai mare numar prim mai mic decat n
Christ: dupa ce am gasit a si b intorc diferenta lor
Alte întrebări interesante