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