Informatică, întrebare adresată de emma376, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de Apollyon
0

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;

}

Alte întrebări interesante