👤
Emma376
a fost răspuns

Urgent!!!!Am nevoie de rezolvarea unor probleme in C++!!!
1. Scrieți un program C++ care citește de la tastatură două numere naturale și verifică (afișând mesaj DA sau NU) dacă ambele numere sunt prime sau nu.
2. Scrieți un program C++ care citește de la tastatură un număr natural și verifică (afișând mesaj DA sau NU) dacă numărul este sau nu număr palindrom impar
Dau coroana!!!



Răspuns :

Răspuns:

#include <iostream>

using std::cout, std::cin, std::endl;

// Funcția verifică dacă numărul primit ca și parametru este sau nu număr prim

static bool esteNumarPrim(const int& numarInitial) {

 // Dacă numărul este 1 sau 0 => false (nu este număr prim)

 if (numarInitial == 0 || numarInitial == 1) return false;

 // Dacă se împarte la un alt număr înafară de 1 și el însuși înseamnă că numărul nu este prim și returnăm false

 for (int i = 2; i <= numarInitial / 2; ++i)

   if (numarInitial % i == 0) return false;

 // Altfel înseamnă că avem un număr prim și returnăm true

 return true;

}

static void primulExercitiu() {

 int primulNumar, alDoileaNumar;

 cout << "Introdu cele doua numere (de ex. 10 5) >> ";

 // Citim cele două numere

 cin >> primulNumar >> alDoileaNumar;

 // Dacă ambele numere sunt prime afișăm „DA” altfel afișăm „NU”

 esteNumarPrim(primulNumar) && esteNumarPrim(alDoileaNumar)

     ? cout << "DA" << endl

     : cout << "NU" << endl;

}

// Funcția verifică dacă numărul primit ca și parametru este palindrom

static bool estePalindrom(int numarInitial) {

 // salvăm o copie la numărul principal

 int copieNumar = numarInitial, ultimaCifra, numarInversat = 0;

 do {

   // luăm ultima cifră

   ultimaCifra = numarInitial % 10;

   // și o adăugăm la numărul inversat ș.a.m.d.

   numarInversat = (numarInversat * 10) + ultimaCifra;

   numarInitial /= 10;

 } while (numarInitial != 0);

 // și dacă copia numărului principal este egală cu numărul inversat înseamnă că avem palindrom, altfel funcția returneză false

 return copieNumar == numarInversat;

}

static void alDoileaExercitiu() {

 int numarCitit;

 cout << "Introdu un numar pentru a verifica daca este palindrom impar >> ";

 // citim numărul

 cin >> numarCitit;

 // dacă este palindrom și palindromul este impar afișăm „DA”, altfel afișăm „NU”

 estePalindrom(numarCitit) && numarCitit % 2 != 0 ? cout << "DA" << endl

                                                  : cout << "NU" << endl;

}

int main() {

 // 1. Scrieți un program C++ care citește de la tastatură două numere naturale și verifică (afișând mesaj DA sau NU) dacă ambele numere sunt prime sau nu.

 primulExercitiu();

 // 2. Scrieți un program C++ care citește de la tastatură un număr natural și verifică (afișând mesaj DA sau NU) dacă numărul este sau nu număr palindrom impar

 alDoileaExercitiu();

 return 0;

}