387
Cerinţa
Scrieți definiția completă a funcției C++ afisare care primește doi parametri a și b și afișează pe ecran, în ordine crescătoare, numerele naturale prime cuprinse între a și b, inclusiv acestea.
Restricţii şi precizări
- numele funcției va fi
afisare - funcția va avea exact doi parametri:
a, respectivb 0 < a , b <= 1000- numerele vor fi afișate pe aceeași linie, separate prin câte un spațiu
Exemplu
Dacă a=7 și b=2, apelul subprogramului va afișa pe ecran:
2 3 5 7
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.
bool prim(int n){
int d = 2, cnt = 1;
while(n > 1){
int p = 0;
while(n % d == 0)
n /= d, p++;
cnt *= (p + 1);
d++;
if(d * d > n)
d = n;
}
return cnt == 2;
}
void afisare(int a, int b){
if(a > b)
swap(a, b);
for(int i = a; i <= b; ++i)
if(prim(i))
cout << i << ' ';
}
Comentarii