/* 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) { bool esagonalecentrato2 = false; // Un bool in più non fa mai male for(int k = 1; k <= 10 and n >= EC(k); ++k) { if(n == EC(k)){ esagonalecentrato2 = true; break; // Ferma il ciclo } } if (esagonalecentrato2) //Se è esagonale centrato return true; // Esci dal bool con valore true return false; // Altrimenti esci con valore false } // Funzione per stampare i numeri esagonali centrati int 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 return 0; //Per compatibilità } // 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 }