👤

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ăspuns :

Christ

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;

}