Sunteți pe pagina 1din 3

FUNCTII

verificati daca x e numar prim numarati divizorii lui x


int prim(int x) { int divizori(int x) {
int i; int i,nr=0;
if (x<2) return 0; for(i=1; i<=x; i++)
for(i=2; i<=x/2; i++) if (x%i==0) nr++;
if (x%i==0) return 0; return nr;}
return 1;}

construiti"oglinditul/rasturnatul" lui x verificati daca x este palindrom


int rasturnat(int x) { int palindrom(int x) {
int inv=0; int inv=0, cx=x;
while (x!=0) { while (cx!=0) {inv=inv*10+cx%10;
inv=inv*10+x%10; cx=cx/10;}
x=x/10;} if (x==inv) return 1;
return inv;} else return 0;}

suma cifrelor lui x verificati daca x e perfect(x=suma divizori-x)


int suma (int x) int perf(int x)
{ int s=0; { int i, s=0;
while (x!=0) for (i=1;i<=x/2;i++)
{ s=s+x%10; if (x%i==0)
x=x/10; } s=s+i;
return s;} if(s==x)return 1;else return 0;sau return s==x;}

calculati cmmmdc-ul numerelor a si b


int cmmdc(int a, int b) {
while(a!=b)
if(a>b)a=a-b;
else b=b-a;
return a;}

1. Se citeste un tablou bidimensional cu n linii si n coloane (2<=n<=20, nN), elementele tabloului sunt numere
intregi. Afisati numerele prime de pe diagonala principala .

#include<iostream>
using namespace std;
int prim(int x) {
int i;
if (x<2) return 0;
for(i=2; i<=x/2; i++)
if (x%i==0) return 0;
return 1;}
int main(){
int n,i,j,a[20][20];
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=n;i++)
if( prim(a[i][i])==1)
cout<<a[i][i]<<" ";
return 0;}

2. Se citesc din fisierul"date.in"numarul n si un tablou bidimensional cu n linii si n coloane (2<=n<=20,


nN), elementele tabloului sunt numere intregi.
Afisati suma elementelor palindrom, de deasupra diagonalei principale .

#include<iostream>
using namespace std;
int palindrom(int x) {
int inv=0, cx=x;
while (cx!=0) {inv=inv*10+cx%10;
cx=cx/10;}
if (x==inv) return 1;
else return 0;}
int main(){ int n,i,j,a[20][20],s=0;
ifstream f("date.in");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(palindrom(a[i][j])==1) s=s+a[i][j];
cout<<s;
f.close();return 0;}

3. Se citesc din fisierul"date.in" numarul n si un tablou unidimensional cu n elemente (2<=n<=20, nN),


elementele tabloului sunt numere intregi. Afisati "oglinditele" tuturor elementelor tabloului.

#include<iostream>
using namespace std;
int rasturnat(int x) {
int inv=0;
while (x!=0) {inv=inv*10+x%10;
x=x/10;}
return inv;}
int main(){ int n,i,j,a[20],s=0;
ifstream f("date.in");
f>>n;
for(i=1;i<=n;i++) f>>a[i];
for(i=1;i<=n;i++) cout<<rasturnat(a[i])<<" ";
f.close();return 0;}
4. Se citeste un tablou bidimensional cu n linii si n coloane (2<=n<=20, nN), elementele
tabloului sunt numere intregi. Afisati numerele cu exact 3 divizori de pe diagonala secundara .

5. Se citesc din fisierul"date.in"numarul n si un tablou bidimensional cu n linii si n coloane


(2<=n<=20, nN), elementele tabloului sunt numere intregi.
Afisati cate elemente perfecte sunt deasupra diagonalei secundare.

6. Se citesc din fisierul"date.in" numarul n si un tablou unidimensional cu n elemente


(2<=n<=20, nN), elementele tabloului sunt numere intregi. Afisati numarul elementelor
tabloului care au suma cifrelor para.

7. Se citeste un tablou bidimensional cu n linii si n coloane (2<=n<=20, nN), elementele


tabloului sunt numere intregi. Afisati numerele din tablou care sunt prime cu numarul y (au
cmmdc-ul 1)

8 Se citesc din fisierul"date.in"numarul n si un tablou bidimensional cu n linii si m coloane


(2<=n<=20, nN), elementele tabloului sunt numere intregi.
Afisati elementele superprime (sunt prime si ele si oglinditele lor de ex 13 si 31)

9. Se citesc din fisierul"date.in" numarul n si un tablou unidimensional cu n elemente


(2<=n<=20, nN), elementele tabloului sunt numere intregi. Afisati cmmdc-ul elementelor
tabloului .

10. Se citeste un tablou bidimensional cu n linii si m coloane (2<=n<=20, nN), elementele


tabloului sunt numere intregi. Afisati numerele de pe prima linie a tabloului care au produsul
cifrelor par.

S-ar putea să vă placă și