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
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);
}
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
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă