Update funzioni/30ott.cpp

This commit is contained in:
Vichingo455 2024-11-06 09:37:29 +00:00
parent a17d7a19ec
commit 2290c158c4
1 changed files with 53 additions and 60 deletions

View File

@ -1,60 +1,53 @@
/* /*
AUTORE: Manuel Vichi AUTORE: Manuel Vichi
Esercizi 30 ottobre Esercizi 30 ottobre
*/ */
#include <iostream> #include <iostream>
#define EC(n) 1+3*(n)*((n)-1) #define EC(n) 1+3*(n)*((n)-1)
using namespace std; using namespace std;
// Funzione per verificare se il numero è esagonale centrale // Funzione per verificare se il numero è esagonale centrale
bool esagonalecentrato(int n) { bool esagonalecentrato(int n) {
bool esagonalecentrato2 = false; // Un bool in più non fa mai male // bool esagonalecentrato2 = false; // Un bool in più non fa mai male
for(int k = 1; k <= 10 and n >= EC(k); ++k) { for(int k = 1; n > EC(k); ++k)
if(n == EC(k)){ ;
esagonalecentrato2 = true; return n == EC(k);
break; // Ferma il ciclo }
} // Funzione per stampare i numeri esagonali centrati
} void stampaesagonalicentrati() {
if (esagonalecentrato2) //Se è esagonale centrato cout << endl << "Primi 10 numeri esagonali centrati: " << endl;
return true; // Esci dal bool con valore true for(int k = 1; k <= 10; ++k) //Da 1 a 10 (0 non può essere esagonale centrato)
return false; // Altrimenti esci con valore false cout << EC(k) << " "; // Stampa l'esagonale centrato
} cout << endl; // Per aumentare la visibilità dell'output
// Funzione per stampare i numeri esagonali centrati }
int stampaesagonalicentrati() { // Funzione per verificare se il numero è primo
cout << endl << "Primi 10 numeri esagonali centrati: " << endl; bool isPrimeNumber(int num) {
for(int k = 1; k <= 10; ++k) //Da 1 a 10 (0 non può essere esagonale centrato) if (num <= 1)
cout << EC(k) << " "; // Stampa l'esagonale centrato return false; // 0 e 1 non sono primi
cout << endl; // Per aumentare la visibilità dell'output for (int i = 2; i * i <= num; i++) {
return 0; //Per compatibilità if (num % i == 0)
} return false; // Se num è divisibile per i, non è primo
// Funzione per verificare se il numero è primo }
bool isPrimeNumber(int num) { return true; // Se non ci sono divisori, è primo
if (num <= 1) }
return false; // 0 e 1 non sono primi // Funzione principale
for (int i = 2; i * i <= num; i++) { int main(void) {
if (num % i == 0) int n;
return false; // Se num è divisibile per i, non è primo cout << "Inserisci un numero: ";
} cin >> n;
return true; // Se non ci sono divisori, è primo cout << endl; // Per aumentare la visibilità dell'output
} if (esagonalecentrato(n)) {
// Funzione principale cout << "Il numero " << n << " e' esagonale centrato." << endl;
int main(void) { }
int n; else {
cout << "Inserisci un numero: "; cout << "Il numero " << n << " non e' esagonale centrato." << endl;
cin >> n; }
cout << endl; // Per aumentare la visibilità dell'output stampaesagonalicentrati();
if (esagonalecentrato(n)) { cout << endl; // Per aumentare la visibilità dell'output
cout << "Il numero " << n << " e' esagonale centrato." << endl; if (isPrimeNumber(n)) {
} cout << "Il numero " << n << " e' primo." << endl;
else { }
cout << "Il numero " << n << " non e' esagonale centrato." << endl; else {
} cout << "Il numero " << n << " non e' primo." << endl;
stampaesagonalicentrati(); }
cout << endl; // Per aumentare la visibilità dell'output return 0; // Uscita normale con codice 0
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
}