Să se scrie o funcție C++ care, pentru un număr natural n transmis ca parametru, determină și întoarce prin intermediul unor parametrii 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
Răspunsuri la întrebare
Răspuns de
4
void sub(int n, int &a, int &b)
{
int i;
for (i=n; ; )
{
int c=0,s=sqrt(i);
for (int j=2; j<=s; j++)
if (i % j == 0) c++;
if (c==0) break; else i++;
}
a=i;
for (i=n; ; )
{
int c=0,s=sqrt(i);
for (int j=2; j<=s; j++)
if (i % j == 0) c++;
if (c==0) break; else i--;
}
b=i;
}
{
int i;
for (i=n; ; )
{
int c=0,s=sqrt(i);
for (int j=2; j<=s; j++)
if (i % j == 0) c++;
if (c==0) break; else i++;
}
a=i;
for (i=n; ; )
{
int c=0,s=sqrt(i);
for (int j=2; j<=s; j++)
if (i % j == 0) c++;
if (c==0) break; else i--;
}
b=i;
}
eleva10:
da o eroare.
{
int i;
for (i=n+1; ; )
{
int c=0,s=sqrt(i);
for (int j=2; j<=s; j++)
if (i % j == 0) c++;
if (c==0) break; else i++;
}
a=i;
for (i=n-1; ; )
{
int c=0,s=sqrt(i);
for (int j=2; j<=s; j++)
if (i % j == 0) c++;
if (c==0) break; else i--;
}
b=i;
}
Alte întrebări interesante
Biologie,
8 ani în urmă
Geografie,
8 ani în urmă
Ed. tehnologică,
8 ani în urmă
Franceza,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Franceza,
9 ani în urmă