Informatică, întrebare adresată de Feliatorul, 9 ani în urmă

Să se scrie o funcție C++ care, pentru un număr natural n transmis ca parametru, determină și întoarce prin intermediul unor parametri de ieșire cel mai mare număr prim mai mic decât n și cel mai mic număr prim mai mare decât n.

Restricţii şi precizări
numele funcției va fi sub
funcția va avea exact trei parametri, în această ordine:
primul parametru, n, reprezintă un număr natural, 3 ≤ n < 1.000.000.000
a și b sunt parametrii prin care funcția va întoarce cele două valori cerute, astfel:
a este cel mai mare număr prim mai mic decât n
b este cel mai mic număr prim mai mare decât n
Exemplu
Dacă n=28, apelul subprogramului va furniza prin parametrul a valoarea 23, iar prin b valoarea 29.
912 de pe pbinfo
Primesc 80 de puncte( un raspuns gresit) si nu stiu de ce, asta'i solutia mea:


bool prim(int nr)
{
if(nr==0 || nr==1)
return false;
if(nr==2)
return true;
if(nr>2 && nr%2==0)
return false;
for(int d=3;d*d<=nr;d+=2)
if(nr%d==0)
return false;

return true;
}
void sub(unsigned long int n, int &a, int&b)
{

unsigned int i;
for(i=n+1;i {
if(prim(i))
break;
}

b=i;
for(i=n;i>n/2;i--)
{
if(prim(i))
break;
}
a=i;
}

Răspunsuri la întrebare

Răspuns de NuPotSaStiuTot
3
poate: 
for(i=n+1;i {
trebuie 
for(i=n+1;true;i++) {
Alte întrebări interesante