You are on page 1of 11

1.

Subprogram determinare primalitate numar

void prim(int n, int &p)


{
p=1;
if(n==0 || n==1) p=0;
else if(n%2==0 && n!=2) p=0;
else for(int d=3;d*d<=n;d=d+2)
if(n%d==0) p=0;
}

2. Cel mai mare divizor comun

void cmmdc(int a, int b, int &c)


{
while(b!=0)
{
int r=a%b;
a=b;
b=r;
}
c=a;
}

3. Suma divizorilor primi ai unui numar natural


int sum_div_prim(int n)
{
int s=0;
int d=2;
while(n>=d*d)
{
if(n%d==0)
{
s=s+d;
while(n%d==0) n=n/d;
}
else if(d==2) d++;
else d=d+2;
}
if(n!=1) s=s+n;
return s;
}
Tablourile de memorie şi subprogramele

A #include<iostream>
using namespace std;
void citeste(int x[], int n)
{
for (int i=0; i<n; i++)
{
cout<<"x("<<i+1<<")= "; cin>>x[i];
}
}
void afiseaza(int x[], int n)
{
for (int i=0; i<n; i++) cout<<x[i]<<" ";
}
void aduna(int x[], int y[], int z[], int n)
{
for (int i=0; i<n; i++)
z[i]=x[i]+y[i];
}
void sort(int x[],int n)
{
for (int i=0; i<n-1; i++)
for (int j=i+1,aux; j<n; j++)
if (x[i]>x[j])
{ aux=x[i];x[i]=x[j]; x[j]=aux; }
}
int main()
{
int a[20],b[20],c[20],n;
cout<<"numarul de elemente ";
cin>>n;
cout<<"primul vector"<<endl;
citeste(a,n);
cout<<"al doilea vector"<<endl;
citeste(b,n);
aduna(a,b,c,n);
sort(c,n);
cout<<"vectorul rezultat, sortat"<<endl;
afiseaza(c,n);
}
B #include<iostream>
using namespace std;
void citeste(int x[], int &n)
{
cout<<"numarul de elemente ";
cin>>n;
for (int i=0; i<n; i++)
{
cout<<"x("<<i+1<<")= "; cin>>x[i];
}
}
int cautaSecvential(int x[], int n,int nr)
{
int cnt=0;
for (int i=0; i<n; i++)
if(x[i]==nr) cnt++;
return cnt;
}
int main()
{
int a[20],b[20],na,nb;
cout<<"primul vector"<<endl; citeste(a,na);
cout<<"al doilea vector"<<endl; citeste(b,nb);
int k;
cin>>k;
int k1=cautaSecvential(a,na,k);
int k2=cautaSecvential(b,nb,k);
if( k1==k2 && k1*k2) cout<<"da\n";
else
cout<<"nu\n";
for(int i=0; i<na; i++)
{
int ok=cautaSecvential(b,nb,a[i]);
if(ok!=0) cout<<a[i]<<' ';
}

}
C #include<iostream>
using namespace std;
void citeste(int x[100][100], int n, int m)
{
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{
cout<<"x["<<i+1<<"]["<<j+1<<"]= ";
cin>>x[i][j];
}
}
void afiseaza(int x[100][100], int n, int m)
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void aduna(int x[][100], int y[][100], int z[][100], int n, int m)
{
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
z[i][j]=x[i][j]+y[i][j];
}
int main()
{
int a[20][100],b[20][100],c[20][100],n,m;
cout<<"numarul de elemente ";
cin>>n>>m;
cout<<"prima matrice"<<endl;
citeste(a,n,m);
cout<<"a doua matrice"<<endl;
citeste(b,n,m);
aduna(a,b,c,n,m);
cout<<"matricea suma:"<<endl;
afiseaza(c,n,m);
}

D #include<iostream>
using namespace std;

void citeste(int x[][100], int &n,int &m)


{
cout<<"numarul de elemente ";
cin>>n>>m;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
{
cout<<"x["<<i+1<<"]["<<j+1<<"]= ";
cin>>x[i][j];
}
}
int cautaSecvential(int x[][100], int n,int m, int nr)
{
int cnt=0;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
if(x[i][j]==nr)
cnt++;
return cnt;
}

int main()
{
int a[20][100],b[20][100],na,nb,ma,mb;
cout<<"prima matrice"<<endl;
citeste(a,na,ma);
cout<<"a doua matrice"<<endl;
citeste(b,nb,mb);
int k;
cin>>k;
if( cautaSecvential(a,na,ma,k)==cautaSecvential(b,nb,mb,k)) cout<<"da";
else
cout<<"nu";

}
1. Subprogram stergere element pozitia k in vector

void stergere(int &n, int a[], int k)


{int i;
for(i=k;i<=n-1;i++)
a[i]=a[i+1];
n--;
}

2. Subprogram inserare element pozitia k in vector

void inserare(int &n, int a[], int k)


{int i;
for(i=n;i>=k;i--)
a[i+1]=a[i];
a[k]=0;
n++;
}

3. Subprogram sortare vector

void ordonare(int n, int a[])


{int i,j;
for(i=1;i<=n-1;i++)
for(j=i+1;ja[j])
swap(a[i],a[j]);
}

4. Subprogram stergere linia k din matrice


void sterglinie(int A[][101], int &n, int m, int k)
{
for(int i=k;i<n;i++)
for(int j=1;j<=m;j++)
A[i][j]=A[i+1][j];
n--;
}

You might also like