Informatică, întrebare adresată de neverup24, 9 ani în urmă

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

Răspunsuri la întrebare

Răspuns de ursuLenes
6
#include <iostream>
using namespace std;
int v[100],n;
int estePrim(int a)
{
        int contor=0;
    for (int i=1; i<=a; i++)
    {
        if (a%i==0)
            contor++;
    }
    if (contor==2)
        return a;
    else
        return 0;
}
int divide(int i,int j)
{
    int a,b;
    if(i==j)
        return v[i];
    else
    {
        a=divide(i,(i+j)/2);
        b=divide((i+j)/2+1,j);
             if(estePrim(a)>estePrim(b))
               return a;
            else
            {
                return b;
            }
    }
}
int main()
{
    cout<<"marimea sirului x[n]=";
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"elementul v["<<i<<"]=";
        cin>>v[i];
    }
    cout<<"cel mai mare element prim este:"<<divide(0,n-1);
}
Alte întrebări interesante