From 2290c158c4bb87296884fbfdaa6221e7c435daf3 Mon Sep 17 00:00:00 2001 From: Vichingo455 Date: Wed, 6 Nov 2024 09:37:29 +0000 Subject: [PATCH] Update funzioni/30ott.cpp --- funzioni/30ott.cpp | 113 +++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 60 deletions(-) diff --git a/funzioni/30ott.cpp b/funzioni/30ott.cpp index 6f4c709..a9aca38 100644 --- a/funzioni/30ott.cpp +++ b/funzioni/30ott.cpp @@ -1,60 +1,53 @@ -/* -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 -} +/* +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; 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 +}