/* AUTORE: Manuel Vichi Esercizi 30 ottobre */ #include #define EC(n) 1+3*(n)*((n)-1) using namespace std; // Funzione per verificare se il numero è esagonale centrale bool esagonalecentrato(int n) { #if 0 int k; for(k = 1; n > EC(k); ++k) ; return n == EC(k); #else for(int k = 1; n >= EC(k); ++k) if(n == EC(k)) return true; return false; #endif } // Funzione per stampare i numeri esagonali centrati void stampaesagonalicentrati() { cout << endl << "Primi 10 numeri esagonali centrati: " << endl; for(int k = 1; k <= 10; ++k) //Da 1 a 10 (0 non può essere esagonale centrato) cout << EC(k) << " "; // Stampa l'esagonale centrato cout << endl; // Per aumentare la visibilità dell'output } // Funzione per verificare se il numero è primo bool isPrimeNumber(int num) { if (num <= 1) return false; // 0 e 1 non sono primi for (int i = 2; i * i <= num; i++) { if (num % i == 0) return false; // Se num è divisibile per i, non è primo } return true; // Se non ci sono divisori, è primo } // Funzione principale int main(void) { int n; cout << "Inserisci un numero: "; cin >> n; cout << endl; // Per aumentare la visibilità dell'output if (esagonalecentrato(n)) { cout << "Il numero " << n << " e' esagonale centrato." << endl; } else { cout << "Il numero " << n << " non e' esagonale centrato." << endl; } stampaesagonalicentrati(); cout << endl; // Per aumentare la visibilità dell'output if (isPrimeNumber(n)) { cout << "Il numero " << n << " e' primo." << endl; } else { cout << "Il numero " << n << " non e' primo." << endl; } return 0; // Uscita normale con codice 0 }