Se dau 2 vectori x si y cu n, respectiv m elemente. Construiti un vector z cu elementele prime din x si y.
Nu stiu ce scriu gresit, nu imi afiseaza nimic.
#include
using namespace std;
int x[100],n,y[100],m,z[100],k;
void cit (int l[100], int nr_elem){
int i;
cin>>nr_elem;
for (i=1;i<=nr_elem;i++)
cin>>l[i];
}
int prim (int numar){
if (numar<2)
return 0;
int i;
for (i=1;i<=numar/2;i++)
if (numar%i==0)
return 0;
return 1;
}
void construire (int a[], int nr_elem1,int b[], int nr_elem2, int c[],int &nr){
int i;
nr=0;
for (i=1;i<=nr_elem1;i++)
if (prim(a[i])==1){
nr++;
c[nr]=a[i];}
for (i=1;i<=nr_elem2;i++)
if (prim(b[i])==1){
nr++;
c[nr]=b[i];}
}
int main (){
cit (x,n);
cit(y,m);
cout<
construire(x, n, y, m, z, k);
int i;
for (i=1;i<=k;i++)
cout<
return 0;
}
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int x[100],n,y[100],m,z[100],k;
void cit (int l[100], int &nr_elem){// avem nevoie de nr_elem dupa ce se executa functia, deci il declaram ca referinta
int i;
cin>>nr_elem;
for (i=1;i<=nr_elem;i++)
cin>>l[i];
}
int prim (int numar){
if (numar<2)
return 0;
int i;
for (i=2;i<=numar/2;i++)// INCEPEM VERIFICAREA DE DIVIZORI DE LA 2!!! Orice numar % 1 == 0 -> pentru toate numerele se va returna 0 si vectorul construit va fi gol
if (numar%i==0)
return 0;
return 1;
}
void construire (int a[], int nr_elem1,int b[], int nr_elem2, int c[],int &nr){
int i;
nr=0;
for (i=1;i<=nr_elem1;i++)
if (prim(a[i])==1){
nr++;
c[nr]=a[i];}
for (i=1;i<=nr_elem2;i++)
if (prim(b[i])==1){
nr++;
c[nr]=b[i];}
}
int main (){
cit (x,n);
cit(y,m);
construire(x, n, y, m, z, k);
int i;
for (i=1;i<=k;i++)
cout<< z[i] << ' ';
return 0;
}