61 lines
2.0 KiB
C++
61 lines
2.0 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; 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
|
|
}
|