online: 7; azi: 828; total: 52834 Manual clasa a x a - Tehnici de implementarea algoritmilor - Recursivitate

Manual clasa a X a

Tehnici de implementarea algoritmilor

Recursivitate

Folosind subprogramele definite recursiv la problema anterioară, generaţi recursiv toate numerele superprime dintr-un interval [ a,b ] ( valoarile pentru a şi b se citesc de la tastatură).
# include < iostream >
# include < cmath >
using namespace std ;
bool isPrime ( int n) {
if (n < 2 ) {
return false ;
}
for ( int i = 2 ; i <= sqrt (n); i++) {
if (n % i == 0 ) {
return false ;
}
}
return true ;
}
bool isSuperprime ( int n) {
if (n < 10 ) {
return isPrime (n);
}
if (! isPrime (n)) {
return false ;
}
return isSuperprime (n / 10 );
}
void generateSuperprimes ( int a, int b) {
if (a > b) {
return ;
}
if ( isSuperprime (a)) {
cout << a << " " ;
}
generateSuperprimes (a + 1 , b);
}
int main () {
int a, b;
cout << " Introduceti intervalul [ a,b ]: " ;
cin >> a >> b;
cout << "Numerele superprime din intervalul [" << a << "," << b << "] sunt: " ;
generateSuperprimes (a, b);
cout << endl ;
return 0 ;
}

Explicații: