School-Coding-Cpp/funzioni/30ott.cpp

54 lines
1.7 KiB
C++

/*
AUTORE: Manuel Vichi
Esercizi 30 ottobre
*/
#include <iostream>
#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; n > EC(k); ++k)
;
return n == EC(k);
}
// 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
}