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

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 de Apollyon
1

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;

}

Alte întrebări interesante