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 << ' '; }