Sunteți pe pagina 1din 12

Atestat

Subiecte programare
1. Se citesc de la tastatura n numere naturale, cu cel mult 9
cifre fiecare. Scrieti un program care pentru o cifr k citit de
la tastatura, afi eaz pe ecran cte numere prime n scrierea
crora apare cifra k, se gsesc n irul dat.
Exemplu: pentru n=4 , cifra k=2 si valorile citite 23, 603, 122,
27 se obtine numarul nr = 1, care corespunde valorii 23 .
#include <fstream>
#include <iostream>
#include <math.h>
using namespace std;
int prim(long int x){
if(x<=1)
return 0;
for(long int d=2;d<=srt(x);d!!)
if(x"d==0)
return 0;
return 1;
#
int cifra$%(long int x& int %){
do{
if(x"10==%)
return 1;
x'=10;
#
(hile(x>0);
return 1;
#
int main() {
int n&i&%&fr=0;
long int x;
ifstream f()intrare.txt));
ofstream g()iesire.txt));
f>>n>>%;
for(i=1;i<=n;i!!){
f>>x;
if(prim(x)** cifra$%(x&%))
fr!!;
#
g<<fr;
g.close();
f.close();
return 0;
#
intrare.txt +
, 2
2- .0- 122 2/
iesire.txt+
1
2. Se cite te de la tastatur un numr natural n cu cel mult
nou cifre. Scrie i un program care verific dac exist un
numr natural k cu proprietatea c n=1*2*3**k. aca exista
un astfel de numar, programul va afisa mesa!ul !"a# i
valoarea k , altfel va afisa mesa!ul !$u#%&intensi'( 'aloarea
se )etermin* utili+,n) o meto)* e-icient* )in punct )e
'e)ere al timpului )e execu ie.
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream f()intrare.txt));
ofstream g()iesire.txt));
long n& factorial=1;
int %=1;
f>>n;
(hile(factorial<n){
%!!;
factorial0=%;
#
if(factorial==n)
g<<)12 )<<%;
else
g<<)34);
g.close();
f.close();
return 0;
#
intrarea.txt+ 2,
iesire.txt+ 12 ,
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream f()5alori.txt));
ofstream g()iesire.txt));
int 5al& max& min& fmax& fmin;
f>>5al;
max=min=5al;
fmax=fmin=1;
(hile(f>>5al){
if(5al>max){
max=5al;
fmax=1;
#
else
if(5al==max)
fmax!!;
if(5al<min){
min=5al;
fmin=1;
#
else
if(5al==min)
fmin!!;
#
g<<max<<6 6<<fmax<<endl<<min<<6 6<<fmin;
g.close();
f.close();
return 0;
#
1
". #n fi$ierul 'alori%txt se gsesc pe prima linie maximum
1%%% de numere ntregi despr&ite printr'un spa&iu. Scrie&i un
program care s determine valoarea maxim $i valoarea
minim, mpreun cu numrul de apari&ii al maximului,
respectiv al minimului.&intensi'( folosi/i o meto)* e-icient*
)in punct )e 'e)ere al memoriei 0i al num*rului )e opera/ii
e-ectuate 0i a-i0a/i pe ecran 'alorile ob/inute..
(xemplu:con&inutul fi$ierului 'alori%txt este : 2) " *9 2) 1 "
1 1 *9, atunci se vor afi$a rezultatele:
min + 1 nr,aparitii + "
max + *9 nr,aparitii + 2
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream f()5alori.txt));
ofstream g()iesire.txt));
int 5al& max& min& fmax& fmin;
f>>5al;
max=min=5al;
fmax=fmin=1;
(hile(f>>5al){
if(5al>max){
max=5al;
fmax=1;
#
else
if(5al==max)
fmax!!;
if(5al<min){
min=5al;
fmin=1;
#
else
if(5al==min)
fmin!!;
#
g<<max<<6 6<<fmax<<endl<<min<<6 6<<fmin;
g.close();
f.close();
return 0;
#
).-i$ierul unu%in con&ine pe primul rnd valoarea n
. 2/n/1.%%%.%%% 0, iar pe a doua linie se gsesc n numere
ntregi formate din cel mult 9 cifre $i despr&ite prin spa&iu.
1tiind c fi$ierul con&ine cel pu&in dou numere distincte
printre cele n de pe a doua linie, scrie&i un program care s
scrie n fi$ierul unu%out pe o singur linie $i separate printr'un
spa&iu, n ordine descresctoate, cele mai mari dou valori
distincte din fi$ierul de intrare. &intensi' (alege/i o meto)*
e-icient* )e re+ol'are at,t ca timp )e executare, c,t 0i ca
gestionare a memoriei.
(xemplu :
unu.in
unu.out
1%
'* 1) * 1) 12 9 '3 1 ) 1% 12 1)
Problema 4(programare)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
long n,x,max1,max2;max1 > max2
ifstream f(!unu"in!);
ofstream g(!unu"out!);
f>>n;
f>>x;
max1#max2#x;
for(long i#1;i<#n$1;i%%){
f>>x;
if(x>max1){
max2#max1;
max1#x;
&
else if(x<max1 '' x>max2)
max2#x;
&
g<<max1<<( (<<max2;
f"close();
g"close();
return );
&
2. -i$ierul text numere%in con&ine pe prima linie un numr
natural n .%/n/2%%%0, iar pe a doua linie n numere naturale de
cel mult 9 cifre fiecare, separate prin cte un spa&iu. S se scrie
un program care cite$te n, apoi cele n numere naturale din
fi$ierul numere%in $i scrie n fi$ierul numere%out, pe cte o
2
linie fiecare, numerele de pe a doua linie a fi$ierului
numere%out care sunt palindroame cu exact patru cifre .un
numr este palindrom dac este egal cu oglinditul su0.
e exemplu dac fi$ierul numere%in are urmtorul con&inut :
2
1))1 2 1) 2222 3*
atunci fi$ierul numere%out va con&ine :
1))1
2222
#include <fstream>
#include <iostream>
using namespace std;
int nr*cifre(int n){
int +#);
,-ile(n){
+%%;
n#1);
&
return +;
&
int pal(int n){
int r#),copie*n#n;
,-ile(n){
r#r.1)%n/1);
n#1);
&
return copie*n##r;
&
int main() {
int n,x;
ifstream f(!numere"in!);
ofstream g(!numere"out!);
f>>n;
,-ile(n){
f>>x;
if(nr*cifre(x)##4 '' pal(x))
g<<x<<! !;
n$$;
&
f"close();
g"close();
return );
&
4.Se cite te de la tastaturp n, i apoi n perec5i de cte dou
numere ntregi a i b cu & a 1 0 1 b. reprezentnd capetele
intervalului2a, b3. 6fisati pe ecran , dac exist, capetele
intervalului de intersec ie al celor n intervale citite. #n cazul n
care nu exist* intervalul de intersec ie se afi eaz 0.
e exemplu, pentru n=3 si perec5ile 241,203, 244,53, 247, 123 ,
obtinem solutia x= 41 si 6= 5%

#include <fstream>
#include <iostream>
using namespace std;
int main() {
int n,a,b,max,min;
ifstream f(!intrare"txt!);
ofstream g(!iesire"txt!);
f>>n;
f>>max>>min;
for(int i#1;i<#n$1;i%%){
f>>a>>b;
if(max<a)
max#a;
if(min>b)
min#b;
&
g<<max<<! !<<min;
g"close();
f"close();
return );
&
7% Se citesc de la tastatur n numere naturale, cu cel mult 9
cifre fiecare. Scrie&i un program care afi$eaz cifra care apare
de cele mai multe ori n numerele citite. ac exist mai multe
astfel de cifre se vor afi$a toate.
(xemplu:7entru n+) $i valorile 2", )"1, 12), )22 se afi$eaz "
pentru c cifra ) apare de " ori n numerele citite.
#include <fstream>
#include <iostream>
using namespace std;
int 011)2;
int main() {
int n,max,i;
long 0al;
ifstream f(!intrare"txt!);
ofstream g(!iesire"txt!);
for(i#1;i<#n;i%%){
"
f>>0al;
do{
010al/1)2%%;
0al#1);
&
,-ile(0al);
&
max#01)2;
for(i#1;i<#3;i%%)
if(01i2>max)
max#01i2;
for(i#);i<#3;i%%)
if(01i2##max)
g<<i<<( (;
f"close();
g"close();
return );
&
*. Se cite$te de la tastatur un numr natural n cu maxim cinci
cifre. 6fi$a&i cel mai apropiat numr fa& de n care are aceea$i
sum a cifrelor.
#include <fstream>
#include <iostream>
using namespace std;
int suma*cif(int x){
int s#);
do{
s%#x/1);
x#1);
&,-ile(x);
return s;
&
int main() {
int n,a,b;
ifstream f(!intrare"txt!);
ofstream g(!iesire"txt!);
f>>n;
a#n$1;
b#n%1;
,-ile(suma*cif(a)4#suma*cif(b))
a$$;
,-ile(suma*cif(b)4#suma*cif(n))
b%%;
if(n$a<b$n)
g<<a;
else
g<<b;
f"close();
g"close();
return );
&
#include <iostream>
using namespace std;
int suma_cif(int x){
int s=0;
while(x){
s+=x!0;
x"=!0;
#
return s;
#
int main() {
int n$a$%;
cin>>n;
a=n&!;
%=n+!;
while(suma_cif(a)'=suma_cif(n))
a&&;
while(suma_cif(%)'=suma_cif(n))
%++;
if(n&a<%&n)
cout<<a;
else
cout<<%;
return 0;
#
9.Se citesc n numere naturale. S se ordoneze numerele
cresctor dup numarul de divizori. &intensi'( num*rul )e
)i'i+ori se 'a )etermina utili+,n) o meto)* e-icient* )in
punct )e 'e)ere al timpului )e execu ie.
(xemplu: n+), numerele 12,),4,1" 1",),4,12 .
#include <iostream>
using namespace std;
int nr_di((int )){
int *=0;
for(int d=+;d<=)"+;d++)
if()d==0)
*++;
return *;
#
int main() {
int n$i$(,!00-;
cin>>n;
for(i=0;i<=n&!;i++)
cin>>(,i-;
int test=0;
while('test){
test=!;
for(i=0;i<=n&+;i++)
)
if(nr_di(((,i-)>nr_di(((,i+!-)){
int aux=(,i-;
(,i-=(,i+!-;
(,i+!-=aux;
test=0;
#
#
for(i=0;i<=n&!;i++)
cout<<(,i-<<. .;
return 0;
#
1%. Se cite$te n numr natural .n8"2%%%0 $i apoi se introduc pe
rnd n numere ntregi. S se afi eze numerele prime $i s se
calculeze media lor aritmetic.
#include <math/h>
#include <iostream>
using namespace std;
int prim(int n){
if(n<=!)
return 0;
for(int d=+;d<=s0rt(n);d++)
if(nd==0)
return 0;
return !;
#
int main() {
int n$x$s=0$*=0;
cin>>n;
while(n){
cin>>x;
if(prim(x)){
cout<<x<<. .;
s+=x;
*++;
#
n&&;
#
cout<<endl<<1media aritmetica a
numerelor prime este 1<<(float)s"*;
return 0;
#
2
11. 11. Se cite te de la tastatur un numr natural n cu cel mult 9
cifre. Sa se afiseze cel mai mare i cel mai mic numar care se
poate forma cu cifrele distincte ale numarului.
#include <iostream>
using namespace std;
int main() {
long n;
int (,!00-$i$2;
cin>>n;
cout<<1cel mai mare numar o%tinut din
cifrele distincte ale lui 1
<<n<<1 este 1;
int *=0;
do{
(,*-=n!0;
*++;
n"=!0;
#while(n);
for(i=0;i<=*&+;i++)
for(2=i+!;2<=*&!;2++)
if((,i-==(,2-){
for(int r=i+!;r<=*&
!;r++)
(,r&!-=(,r-;
i&&;
2&&;
*&&;
#
int test=0;
while('test){
test=!;
for(i=0;i<=*&+;i++)
if((,i->(,i+!-){
int aux=(,i-;
(,i-=(,i+!-;
(,i+!-=aux;
test=0;
#
#
int mare=0$mic=0;
for(i=0;i<=*&!;i++){
mic=mic3!0+(,i-;
mare=mare3!0+(,*&!&i-;
#
cout<<mare<<1$ iar cel mai mic este 1<<mic;
return 0;
#
12. Se cite te din fi ierul numar%txt un numr natural n. S se
verifice dac este putere a lui 2 i s se calculeze frecven a de
apari ie a fiecarei cifre n scrierea n baza 1% a numrului.
#include <fstream>
#include <iostream>
using namespace std;
int putere+(int n){
int *=!;
while(*<n){
*3=+;
#
return *==n;
#
int fr(int n$int c){
int *=0;
do{
if(n!0==c)
*++;
n"=!0;
#while(n);
return *;
#
int main() {
ifstream f(1numar/txt1);
int n;
f>>n;
f/close();
if(putere+(n))
cout<<n<<1 e putere a lui +1;
else
cout<<n<<1 nu e putere a lui +1;
cout<<endl<<1frec(enta fiecarei cifre a lui
1<<n<<.4.<<endl;
for(int i=0;i<=5;i++){
if(fr(n$i))
cout<<i<<1 &&>
1<<fr(n$i)<<endl;
#
return 0;
#
4
1". Scrieti un program care afi eaz pe ecran toate numerele
naturale cu maxim 9 cifre care sunt rotunde.numerele care
convertite in binar au acelasi numar de % respectiv de 10.
(xemplu: 12+911%% este rotund: 1" +911%1 nu este rotund 0
#include <iostream>
using namespace std;
int %inar(long int n){
if(n==0)
return 0;
else
return %inar(n"+)3!0+n+;
#
int nr0!(int n){
int nr0$nr!;
nr0=nr!=0;
do{
if(n!0==0)
nr0++;
if(n!0==!)
nr!++;
n"=!0;
#while(n);
return nr!==nr0;
#
int main() {
for(long i=0;i<!000;i++)
if(nr0!(%inar(i)))
cout<<i<<1 =>
1<<%inar(i)<<endl;
return 0;
#
1). -i$ierul text numere%in con&ine pe prima linie un numr
natural n &01n11000., iar pe a doua linie n numere naturale cu
cel mult 9 cifre fiecare, despr&ite prin cte un spa&iu. Scrie&i
un program ;<;== care cite$te toate numerele din fi$ier $i
afi$eaz pe ecran, separate prin cte un spa&iu, numerele de pe
a doua linie a fi$ierului, care sunt formate din cifre identice.
(xemplu: dac fi$ierul numere%in are con&inutul:
9
22 1%3 " 1%1 99 3 2%* 2222 *%
numerele ce se vor afi$a sunt:
22 " 99 3 2222
#include <fstream>
#include <iostream>
using namespace std;
int cif_id(long n){
if(n<=5)
return !;
else{
int u=n!0$test=0;
n"=!0;
do{
if(n!0==u){
u=n!0;
n"=!0;
#
else
test=!;
#while(n 66 'test);
if('test)
return !;
else
return 0;
#
#
int main() {
ifstream f(1numere/in1);
int n;
long x;
f>>n;
while(n){
f>>x;
if(cif_id(x))
cout<<x<<. .;
n&&;
#
f/close();
return 0;
#
3
12.-i$ierul atestat%txt con&ine pe prima linie un numr natural
n &n7100., iar pe a doua linie, separate prin cte un spa&iu, n
numere naturale nenule, cu cel mult 4 cifre fiecare. Scrie&i
programul ;<;== care afiseaza pe ecran cifra de control a
fiecrui numr &c&4869.=c&4:8:6:9.=c&23.=8.%
(xemplu: dac fi$ierul are con&inutul alturat,
3
12% ")4 4* 9 "2 % 112
atunci se afi$eaz " ) 2 9 2 % )
#include <fstream>
#include <iostream>
using namespace std;
int suma_cif(int x){
int s=0;
do{
s+=x!0;
x"=!0;
#while(x);
return s;
#
int cif_ctrl(int x){
if(x<=5)
return x;
else
return cif_ctrl(suma_cif(x));
#
int main() {
int n$x;
ifstream h(1atestat/txt1);
h>>n;
while(n){
h>>x;
cout<<cif_ctrl(x)<<. .;
n&&;
#
h/close();
return 0;
#
14. -i$ierul numere%in con&ine pe prima linie mai multe
numere naturale n ordine cresctoare dintre care cel pu in o
putere a lui ". Scrie&i un algoritm e-icient care afi$eaz pe
ecran numerele din fi$ier ce sunt puteri ale lui ".
#include <iostream>
#include <fstream>
using namespace std;
int p7(int )){
int *=!;
while(*<))
*3=7;
return *==);
#
int main() {
int x;
ifstream f(1numere/in1);
while(f>>x)
if(p7(x))
cout<<x<<. .;
f/close();
return 0;
#
13. at n natural, sa se descompuna ca suma de puteri distincte
ale lui 2.
(xemplu : 22+2
)
=2
"
=2
%
.
#include <iostream>
using namespace std;
int putere+(int x){
int *=!$e=0;
while(*<x){
*3=+;
e++;
#
if(*==x)
return e;
else
return &!;
#
int p(int n){
while(putere+(n)<0)
n&&;
return n;
#
(oid desc(int x){
int a=p(x);
cout<<x<<1 = +81<<putere+(a);
x&=a;
while(x){
a=p(x);
cout<<1 + +81<<putere+(a);
x&=a;
#
#
int main() {
int n;
*
cin>>n;
desc(n);
return 0;
#
1*. S se scrie un program care s verifice dac suma cifrelor
de pe pozi&iile impare $i suma cifrelor de pe pozi&iile pare ale
unui numr natural n citit de la tastatur sunt egale. 7ozi&iile se
numr de la dreapta la stnga ncepnd cu pozi&ia 1. Se
afi$eaz sumele $i un mesa! corespunztor pe ecran.
(xemplu: se cite$te: n+12")2 $i
se afi$eaz: sp+4 $i simp+9 >u coincid?
#include <iostream>
using namespace std;
int sumac(int x){
int s=0;
do{
s++;
x"=!0;
#while(x);
return s;
#
(oid sume(int n$int 6sp$int 6simp){
int *=sumac(n);
sp=0;
simp=0;
while(*){
if(*+==!)
simp+=n!0;
else
sp+=n!0;
*&&;
n"=!0;
#
#
int main() {
int n$sp$simp;
cin>>n;
sume(n$sp$simp);
cout<<1sp=1<<sp<<endl<<1simp=1<<simp<<endl;
if(sp==simp)
cout<<19oincid1;
else
cout<<1:u coincid1;
return 0;
#
19. S se afi$eze primele n perec5i de numere prime gemene,
unde n este un numr natural nenul citit de la tastatur.
(xemplu: se cite$te: n+)
se afi$eaz: ." : 20 : .2 : 30 : .11 : 1"0 : .13 : 190
#include <iostream>
#include <math/h>
using namespace std;
int prim(int x){
if(x<=!)
return 0;
for(int d=+;d<=s0rt(x);d++)
if(xd==0)
return 0;
return !;
#
int main() {
int n;
cin>>n;
int x=7;
while(n){
if(prim(x) 66 prim(x++)){
cout<<.(.<<x<<.$.<<x++<<.).<<endl;
n&&;
#
x=x++;
#
return 0;
#
9
2%. Se citesc n numere naturale nenule. S se precizeze cu cte
zerouri se va termina produsul numerelor fr a calcula efectiv
produsul lor.
(xemplu: se cite$te:n+" i numerele22, 12, 9
se afi$eaz: 2 de zero
#include <iostream>
using namespace std;
int nr+(int x){
int *=0;
while(x+==0){
*++;
x"=+;
#
return *;
#
int nr;(int x){
int *=0;
while(x;==0){
*++;
x"=;;
#
return *;
#
int main() {
int n$x$n+=0$n;=0;
cin>>n; int aux=n;
while(n){
cin>>x;
n++=nr+(x);
n;+=nr;(x);
n&&;
#
if(n+<n;)
cout<<1<rodusul celor 1<<aux<<
1 numere introduse se termina cu
1<<n+<<1 =erouri/1;
else
cout<<1<rodusul celor 1<<aux<<
1 numere introduse se termina cu
1<<n;<<
1 =erouri/1;
return 0;
#
21. Se cite$te un numr natural n. S se afi$eze toate numerele
prime mai mici dect n astfel nct suma cifrelor a fiecrui
numr s fie mai mic dect un alt numr citit m.
(xemplu: se cite$te: n+ "% $i m+3
se afi$eaz: 2, ", 2, 11, 1", 2"
#include <iostream>
#include <math/h>
using namespace std;
int prim(int n){
if(n<=!)
return 0;
for(int d=+;d<=s0rt(n);d++)
if(nd==0)
return 0;
return !;
#
int suma_cif(int x){
int s=0;
while(x){
s+=x!0;
x"=!0;
#
return s;
#
int main() {
int n$m$x;
cout<<1n=1; cin>>n;
cout<<1m=1; cin>>m;
for(x=+;x<n;x++){
if(prim(x) 66 suma_cif(x)<m)
cout<<x<<. .;
#
return 0;
#
1%
22. -i$ierul matrice%txt con&ine pe primul rnd dou valori
naturale m $i n .1/n/1%%, 1/m/1%%0, reprezentnd numrul
de linii $i respectiv de coloane ale unei matrice a, iar pe
urmtoarele m linii cte n valori ntregi cu maximum ) cifre
fiecare, separate prin cte un spa&iu, reprezentnd elementele
matricei a. 6fi$a&i pe ecran un $ir de 2@.n=m0 A ) numere
ordonate cresctor, $ir format din elementele aflate pe c5enarul
exterior al matricei a. ;5enarul exterior este format din prima
$i ultima linie, respectiv prima $i ultima coloan din matrice.
(xemplu: dac matricea dat este :
" )
1 2 " )
2 4 3 *
9 1 2 "
se va afi$a $irul : 1 1 2 2 " " ) 2 * 9.
#include <fstream>
#include <iostream>
using namespace std;
int main() {
int i$2$n$m$a,!00-,!00-$test=0$(,75>-;
ifstream f(1matrice/txt1);
f>>m>>n;
for(i=0;i<=m&!;i++)
for(2=0;2<=n&!;2++)
f>>a,i-,2-;
2=0;
for(i=0;i<=n&!;i++){
(,2-=a,0-,i-; 2++;
(,2-=a,m&!-,i-; 2++;
#
for(i=!;i<=m&+;i++){
(,2-=a,i-,0-;2++;
(,2-=a,i-,n&!-; 2++;
#
while('test){
test=!;
for(i=0;i<=2&+;i++)
if((,i->(,i+!-){
int aux=(,i-;
(,i-=(,i+!-;
(,i+!-=aux;
test=0;
#
#
for(i=0;i<=2&!;i++)
cout<<(,i-<<1 1;
f/close();
return 0;
#
2". Se cite$te de la tastatur o valoare natural m .2/m/1%%0.
Scrie&i programul ;<;==<7ascal care construie$te n memorie
$i apoi afi$eaz pe ecran matricea a cu m linii $i m coloane de
numere ntregi, construit dup urmtoarea regul : elementul
de pe linia i $i coloana ! a matricii . 1/i , !/m0 este :
1 dac i@i=!@! este ptrat perfect
2 dac i@i=!@! nu este ptrat perfect, dar este numr prim
mai mare dect 2
" n rest.
(xemplu: pentru m + 2, se va afi$a matricea :
" 2
2 "
#include <iostream>
#include <math/h>
using namespace std;
int prim(int )){
if()<=!)
return 0;
for(int d=+;d<=s0rt());d++)
if()d==0)
return 0;
return !;
#
int main() {
int m$a,!00-,!00-$i$2;
cin>>m;
for(i=!;i<=m;i++)
for(2=!;2<=m;2++)
if(s0rt(i3i+232)==floor(s0rt(i3i+232)))
a,i-,2-=!;
else
if(prim(i3i+232) 66
(i3i+232)>+)
a,i-,2-=+;
else
a,i-,2-=7;
for(i=!;i<=m;i++){
for(2=!;2<=m;2++)
cout<<a,i-,2-<<. .;
cout<<endl;
#
return 0;
#
11
2). Se cite$te un vector ' cu n componente numere naturale.
S se afi$eze cel mai mare numr care se poate forma cu cifra
maxim a fiecrui numr din vector.
(xemplu: se cite$te: n+ 2 $i v+.29, 131, %, 2222, 1%%0
se afi$eaz: 9321%
#include <iostream>
using namespace std;
int cif_max(int x){
int c=x!0;
x"=!0;
while(x){
if(x!0>c)
c=x!0;
x"=!0;
#
return c;
#
int main() {
int n$(,!00-$i$cifre,!00-$2=0;
cin>>n;
for(i=0;i<=n&!;i++){
cin>>(,i-;
cifre,2-=cif_max((,i-);
2++;
#
int test=0;
while('test){
test=!;
for(i=0;i<=2&+;i++)
if(cifre,i-<cifre,i+!-){
int aux=cifre,i-;
cifre,i-=cifre,i+!-;
cifre,i+!-=aux;
test=0;
#
#
int (al=0;
for(i=0;i<=2&!;i++)
(al=(al3!0+cifre,i-;
cout<<(al;
return 0;
#
22. Se consider o matrice oarecare de dimensiune mxn cu
elemente numere naturale. S se afi$eze numerele cu numr
impar de divizori din matrice $i s se indice numrul lor.
(xemplu: se cite$te: m+2 $i n+" $i matricea

=
22 3 12
* 11 )
A
se afi$eaz: ), 22,
2 numere
#include <iostream>
using namespace std;
int nr_di((int n){
int *=0;
for(int d=+;d<=n"+;d++)
if(nd==0)
*++;
return *;
#
int main() {
int m$n$i$2$a,!0-,!0-$*=0;
cin>>m>>n;
for(i=0;i<=m&!;i++)
for(2=0;2<=n&!;2++)
cin>>a,i-,2-;
for(i=0;i<=m&!;i++)
for(2=0;2<=n&!;2++)
if(nr_di((a,i-,2-)+'
=0){
cout<<a,i-
,2-<<. .;
*++;
#
cout<<endl<<*<<1 numere1;
return 0;
#
12