Numere prime Sa se execute un program din linia de comanda avand ca m parametri doua numere de tip intreg si verifica daca cel putin unul dintre ele este prim. Sa se afiseze si numele programului.
Răspunsuri la întrebare
Răspuns:
#include <cstdlib>
#include <iostream>
using std::cout, std::cerr, std::endl;
// Funcția returnează true dacă numărul este prim, false altfel
static bool esteNumarPrim(int numar) {
if (numar == 0 || numar == 1) return false;
for (int i = 2; i <= numar / 2; ++i)
if (numar % i == 0) return false;
return true;
}
int main(int argc, char* argv[]) {
int primulNumar{}, alDoileaNumar{};
// dacă nu ai oferit la apelarea programului cele 2 argumente, iasă din program
if (argc != 3) cerr << "Numar insuficient de argumente!" << endl;
// dacă ambele argumente nu sunt numere întregi iasă din program
if ((primulNumar = atoi(argv[1])) == 0 || (alDoileaNumar = atoi(argv[2])) == 0)
cerr << "Introdu numere intregi!" << endl;
// dacă cel puțin un număr este prim
if (esteNumarPrim(primulNumar) || esteNumarPrim(alDoileaNumar))
// afișăm că există cel puțin un număr prim și numele programului
cout << "Cel putin un numar este prim, numele progamului este \"" << argv[0] << "\"!" << endl;
// dacă nu există numere prime
else cout << "Niciun numar nu este prim!" << endl;
return 0;
}