fbpx

Problema #1020 – MaxPrim – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se consideră un șir cu n elemente, numere naturale. Folosind metoda Divide et Impera, determinați cel mai mare element prim din acest șir.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.

Date de ieșire

Programul va afișa pe ecran numărul M, cel mai mare element prim al șirului.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele șirului vor fi mai mici decât 1.000.000
  • se garantează că în șir apare cel puțin un element prim
  • se recomandă folosirea metodei Divide et Impera

Exemplu

Intrare

64 1 8 4 3 5 

Ieșire

5
#include <bits/stdc++.h>

using namespace std;

int prim(int n);

int main ()
{
    int n,tmp,max=0;
    cin >> n;
    for (int i=1 ; i <= n; ++i)
    {
        cin >> tmp;
        if (prim(tmp))
        {
            if (tmp>max)
            max=tmp;
        }
    }
    cout << max;
}
int prim(int n)
{
    int cnt=0;
    for (int i = 1; i <= sqrt(n); ++i)
    {
        if (n%i==0)
        cnt+=2;
    }
    if (cnt==2)
    return 1;
    else
    return 0;
}
Comentarii

S-ar putea sa iti placa