Informatică, întrebare adresată de Cristian1429, 7 ani în urmă

Să se scrie un program care citeşte cel mult 1.000.000 de numere naturale din intervalul închis [0,9] şi determină cel mai mare număr prim citit şi numărul său de apariţii.

Răspunsuri la întrebare

Răspuns de johnxrd
0

Răspuns:

#include <iostream>

using namespace std;

// Functie pentru a verifica daca un numar este prim

bool isPrime(int n)

{

   // Daca numarul este mai mic sau egal cu 1, atunci nu este prim

   if (n <= 1)

       return false;

 

   // Daca numarul este egal cu 2, atunci este prim

   if (n == 2)

       return true;

 

   // Verificare pentru a vedea daca numarul este divizibil cu orice numar mai mic decat el

   for (int i = 2; i < n; i++)

       if (n % i == 0)

           return false;

 

   return true;

}

 

int main()

{

   int n;

   int maxPrime = 0;

   int count = 0;

 

   // Citim un numar n

   cin >> n;

 

   // Repetam citirea pana cand s-au citit 1.000.000 de numere

   while (n <= 1000000) {

 

       // Verificam daca numarul citit este prim

       if (isPrime(n) == true) {

 

           // Daca numarul citit este mai mare decat cel mai mare prim inregistrat la momentul curent,

           // atunci il actualizam

           if (n > maxPrime) {

               maxPrime = n;

               count = 1;

           }

 

           // Daca numarul citit este egal cu cel mai mare prim inregistrat la momentul curent,

           // atunci numarul de aparitii creste

           else if (n == maxPrime)

               count++;

       }

 

       // Citim urmatorul numar

       cin >> n;

   }

 

   // Afisam rezultatul

   cout << maxPrime << " " << count;  

 

   return 0;

}

Alte întrebări interesante