#include <iostream>
#include <math.h>
main() {
using namespace std;
long double altro, oper, ris, ris1, ris2, a, b , pow ;// dichiaro le variabili
cout << "Che operazione vuoi eseguire?" << endl;
cout << "1 = Addizione 7 = Radice cubica" << endl;
cout << "2 = Sottrazione 8 = Radice x di y (approssimata a meno 1)" << endl;
cout << "3 = Moltiplicazione 9 = Scomposizione in fattori primi" << endl;
cout << "4 = Divisione 10 = MCD, mcm" << endl;
cout << "5 = Potenza 11 = Trova divisori" << endl;
cout << "6 = Radice quadrata 12 = exit" << endl;
cin >> oper;// chiedo che operazione vuole esguire
if (oper == 1) {// se sceglie l'addizione...
cout << "Inserisci il primo numero:" << endl;
cin >> a; // chiedo il primo numero
cout << "Inserisci il secondo numero:" << endl;
cin >> b;// chiedo il secondo numero
ris = a + b;// risolvo il calcolo
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
}// Fine if
if (oper == 2) {//se sceglie la sottrazione...
cout << "Inserisci il primo numero:" << endl;
cin >> a; // chiedo il primo numero
cout << "Inserisci il secondo numero:" << endl;
cin >> b;// chiedo il secondo numero
ris = a - b;// risolvo il calcolo
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
}// fine if
if (oper == 3) {//se sceglie la moltiplicazione...
cout << "Inserisci il primo numero:" << endl;
cin >> a;// chiedo il primo numero
cout << "Inserisci il secondo numero:" << endl;
cin >> b;// chiedo il secondo numero
ris = a * b;// risolvo il calcolo
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
}// fine if
if (oper == 4) {//se sceglie la divisione...
cout << "Inserisci il primo numero:" << endl;
cin >> a;// chiedo il primo numero
cout << "Inserisci il secondo numero:" << endl;
cin >> b;// chiedo il secondo numero
ris = a / b;// risolvo il calcolo
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
}// fine if
if (oper == 5) {// se sceglie la potenza...
cout << "Inserisci la base:" << endl;
cin >> a;//chiedo la base
cout << "Inserisci l'esponente:" << endl;
cin >> b;//chiedo l'esponente
ris = pow = a,b;//eseguo il calcolo
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
}// fine if
if (oper == 6) {// se sceglie la radice quadrata...
cout << "Inserisci il radicando:" << endl;
cin >> a;//chiedo il radicando
ris = sqrt(a);//eseguo l'operazione
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
}// fine if
if (oper == 7) {
double f = 0.9999;
cout << "Inserisci il radicando:" << endl;
cin >> a;
if (a == 1) {
cout << "Il risultato e' 1" << endl << endl;
}
if (a == 27) {
cout << "Il risultato e' 3" << endl << endl;
}
if (a == 64) {
cout << "Il risultato e' 4" << endl << endl;
}
if (a == 125) {
cout << "Il risultato e' 5" << endl << endl;
}
if (a != 1 && a != 27 && a != 64 && a != 125) {
for (long double j = 0; ; j++) {
f = f +0.0001;
ris1 = f * f * f;
if (ris1 >= a) {
ris = f - 0.0001;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;
}
}
if (oper == 8) {
int c;
cout << "Inserisci l'indice:" << endl;
cin >> c;
cout << "Inserisci il radicando:" << endl;
cin >> b;
if (c > 20) {
cout << "Questo programma non e' in gradi di calcolare la radice con un indice cosi' alto" << endl << endl;
}
switch(c){
case 1:
cout << "Il risultato e' " << b << endl << endl;//dico il risultato
break;
case 2:
ris = sqrt(b);
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 3:
for (long double j = 0; ; j++) {
ris1 = j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 4:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 5:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 6:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 7:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 8:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 9:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 10:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 11:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 12:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 13:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 14:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 15:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 16:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 17:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 18:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 19:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
case 20:
for (long double j = 0; ; j++) {
ris1 = j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j * j;
if (ris1 >= b) {
ris = j;
break;
}
}
cout << "Il risultato e' " << ris << endl << endl;//dico il risultato
break;
}
} if (oper == 9) {
int num;
int is;
int j = 1;
cout << "Inserisci il numero da scomporre in fattori primi:" << endl;
cin >> num;
cout << endl;
for (int i = 0; ; i++) {
j++;
is = 1;
for (int z = 2; z < j; z++) {
if ((j % z) == 0) {
is = 0;
}
}
if ((num % j) == 0) {
if (is == 1) {
if (num > 1) {
cout << num << ":" << j << endl;
num = num / j;
j = 1;
}
}
}
if (num <= 1) {
cout << "1" << endl << endl;
break;
}
}
}
if (oper == 10) {
int c, d, e;
int cosa;
cout << endl;
cout << "1 = mcm (a, b) 3 = mcm (a, b, c)" << endl;
cout << "2 = MCD (a, b) 4 = MCD (a, b, c)" << endl;
cin >> cosa;
if (cosa == 1) {
cout << "Inserisci i due numeri:" << endl;
cin >> c;
cin >> d;
for (int i = 2; ; i++) {
if (i % c == 0 && i % d == 0) {
cout << "mcm (" << c << ", " << d << ")= " << i << endl << endl;
break;
}
}
}
if (cosa == 2) {
cout << "Inserisci i due numeri:" << endl;
cin >> c;
cin >> d;
int max;
if (c > d) {
max = c;
}
if (d > c) {
max = d;
}
for (int z = max; ; z--) {
if (c % z == 0 && d % z == 0) {
cout << "MCD (" << c << ", " << d << ")= " << z << endl << endl;
break;
}
}
}
if (cosa == 3) {
cout << "Inserisci i tre numeri:" << endl;
cin >> c;
cin >> d;
cin >> e;
for (int i = 2; ; i++) {
if (i % c == 0 && i % d == 0 && i % e == 0) {
cout << "mcm (" << c << ", " << d << ", " << e << ")= " << i << endl << endl;
break;
}
}
}
if (cosa == 4) {
cout << "Inserisci i tre numeri:" << endl;
cin >> c;
cin >> d;
cin >> e;
int max;
if (c > d && c > e) {
max = c;
}
if (d > c && d > e) {
max = d;
}
if (e > c && e > d) {
max = e;
}
for (int z = max; ; z--) {
if (c % z == 0 && d % z == 0 && e % z == 0) {
cout << "MCD (" << c << ", " << d << ", " << e << ")= " << z << endl << endl;
break;
}
}
}
}
if (oper == 11) {
int num, div, c;
cout << "Inserisci il numero:" << endl;
cin >> num;
cout << endl << num << " e' divisibile per:";
c = num + 1;
for (int b = 1; b < c; b++) {
div = b;
if ((num % div) == 0) {
cout << endl << div;
}
}
cout << endl << endl;
}
if (oper >= 12) {
exit(0);
}
cout << "Vuoi eseguire altri calcoli con la calcolatrice?" << endl;//chiedo se vuole eseguire altri calcoli
cout << "1 = SI" << endl;
cout << "2 = NO" << endl;
cin >> altro;//risposta
if (altro == 1) {// se risponde si...
system("cls");//pulisco lo schermo
main();//faccio rincominciare il tutto
}// fine if
return 0;//tutto ok
}//fine