391
Cerinţa
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șibsunt parametrii prin care funcția va întoarce cele două valori cerute, astfel:aeste cel mai mare număr prim mai mic decâtnbeste cel mai mic număr prim mai mare decâtn
- primul parametru,
Exemplu
Dacă n=28, apelul subprogramului va furniza prin parametrul a valoarea 23, iar prin b valoarea 29.
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
int sub(int n , int& a , int& b)
{
for(int i = n-1 ; 1 ; --i)
{
int cnt=0;
for(int j = 1 ; j * j <= i ; ++j)
{
if(i%j==0)
cnt+=2;
if(j*j==i)
cnt--;
}
if(cnt==2)
{
a=i;
break;
}
}
for(int i = n +1 ; 1 ; ++i)
{
int cnt=0;
for(int j = 1 ; j * j <= i ; ++j)
{
if(i%j==0)
cnt+=2;
if(j * j == i)
cnt--;
}
if(cnt==2)
{
b=i;
break;
}
}
return a;
return b;
}
Comentarii