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

Se dă un şir cu n elemente, numere naturale. Folosind metoda Divide et Impera să se verifice dacă în șir există elemente prime.


AntiEaglesDavids: de ce ai folosi divide and conquer pt asa ceva....
ursuLenes: pentru ca asta a fost cerinta profesorului sa se asigure ca stie metoda?
ursuLenes: nu ca ar fi eficient :)
AntiEaglesDavids: waste of time
ursuLenes: timpul este un lux pe care orice profesor considera ca elevul si-l permite dupa ore
AntiEaglesDavids: bine zis!

Răspunsuri la întrebare

Răspuns de ursuLenes
20
#include <iostream>
using namespace std;
int v[100],n,prim=0;
void estePrim(int a)
{
        int contor=1;
    for (int i=2; i<=a/2; i++)
    {
        if (a%i==0)
            contor=0;
    }
    if (contor==1)
        prim++;
        cout<<prim<<endl;
}
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);
        estePrim(a);
        estePrim(b);
    }

}
int main()
{
    cout<<"marimea sirului x[n]=";
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"elementul v["<<i<<"]=";
        cin>>v[i];
    }
    divide(0,n-1);
    cout<<"exista "<<prim<<" nr prime";
}
Alte întrebări interesante