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:
#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;
}