Răspuns :
void sub(int n, int &a, int &b)
{
//in vectorul x calculez toate numrele prime pana la n
vector <bool> x(n+1);
int s=sqrt(n),q,k; // metoda de calcul e Sieve of Atkin
for (int i=1; i<=s; i++)
for (int j=1; j<=s; j++)
{
q=4*i*i+j*j;
if (q<=n &&(q % 12 ==1 || q % 12 == 5)) x[q]=!x[q];
q=q-i*i;
if (q<=n && q % 12 ==7) x[q]=!x[q];
q=q-2*j*j;
if (i>j && q<=n && q % 12 ==11) x[q]=!x[q];
}
for (int i=1; i<=s; i++)
if (x[i])
{
k=q=i*i;
while (q<=n)
{
x[q]=false;
q+=k;
}
}
x[2]=x[3]=true;
// numerele prime deja sunt calculate si ramane doar sa gasim 2 cele mai mari
int i=n,j;
for (; ; i--)
if (x[i])
{
a=i;
j=i-1;
break;
}
for (; ; j--)
if (x[j])
{
b=j;
break;
}
}
{
//in vectorul x calculez toate numrele prime pana la n
vector <bool> x(n+1);
int s=sqrt(n),q,k; // metoda de calcul e Sieve of Atkin
for (int i=1; i<=s; i++)
for (int j=1; j<=s; j++)
{
q=4*i*i+j*j;
if (q<=n &&(q % 12 ==1 || q % 12 == 5)) x[q]=!x[q];
q=q-i*i;
if (q<=n && q % 12 ==7) x[q]=!x[q];
q=q-2*j*j;
if (i>j && q<=n && q % 12 ==11) x[q]=!x[q];
}
for (int i=1; i<=s; i++)
if (x[i])
{
k=q=i*i;
while (q<=n)
{
x[q]=false;
q+=k;
}
}
x[2]=x[3]=true;
// numerele prime deja sunt calculate si ramane doar sa gasim 2 cele mai mari
int i=n,j;
for (; ; i--)
if (x[i])
{
a=i;
j=i-1;
break;
}
for (; ; j--)
if (x[j])
{
b=j;
break;
}
}
void sub(int n, int &a, int &b)
{
int k = n, nr = 2, i;
bool prim;
while(k > 0 && nr > 0)
{
k--;
prim = true;
for(i = 2; i * i <= k; i ++)
if(k % i == 0)
{
prim = false;
break;
}
if(prim)
{
if (nr == 2)
{
a = k;
nr --;
continue;
}
if (nr == 1)
{
b = k;
nr --;
}
}
}
return;
}
{
int k = n, nr = 2, i;
bool prim;
while(k > 0 && nr > 0)
{
k--;
prim = true;
for(i = 2; i * i <= k; i ++)
if(k % i == 0)
{
prim = false;
break;
}
if(prim)
{
if (nr == 2)
{
a = k;
nr --;
continue;
}
if (nr == 1)
{
b = k;
nr --;
}
}
}
return;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!