Subiectul nr.
16
Din fişierul text [Link] se citesc doua numere naturale n, m (1<n<30, 1<m<30 ) apoi
elementele întregi ale unei matrici de dimensiune n*m. Scrieţi un program Pascal/C/C++ care
modifică matricea astfel: toate elementele egale cu valoarea maximă din matrice se înlocuiesc
cu valoarea minimă de pe coloana lor. Dacă s-a făcut măcar o înlocuire, matricea rezultată se
va scrie în fişierul text [Link], altfel matricea nu se va scrie în fişierul de ieşire. Pe ultima
linie în fişierul de ieşire se va scrie numărul de substituţii efectuate.
Ex:
[Link] [Link]
3 5 2 6 1 3
2 6 7 3 2 1 1 1
7 1 7 1 5 3 1 2
5 3 1 2 3
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
ofstream g("[Link]");
int main()
{
int n,m,a[30][30],k=0,maxi=-1000000,mini[30],i,j;
f>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{ f>>a[i][j];
if(a[i][j]>maxi)
maxi=a[i][j];
}
for(j=0;j<m;j++)
{ mini[j]=100000; //minim pe coloana j
for(i=0;i<n;i++)
if(a[i][j]<mini[j])
mini[j]=a[i][j];
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i][j]==maxi)
{ a[i][j]=mini[j];
k++;
}
if (k==0)
g<<k;
else
{ for(i=0;i<n;i++)
{for(j=0;j<m;j++)
g<<a[i][j]<<" ";
g<<endl;
}
g<<k;
}
[Link]();
[Link]();
return 0;
}
Subiectul nr.17
Din fişierul text [Link] conţine pe prima linie două numere naturale n şi m
(0<m<n<5000), pe cea de a doua linie n numere naturale a , a , …, a (0 ≤ a ≤9), iar pe cea de a
1 2 n i
treia linie m numere naturale b , b , …, b (0 ≤ b ≤9).
1 2 m i
Scrieți programul C/C++ care citește datele din fișier, verifică dacă şirul b se poate obţine din
şirul a prin eliminări, fără a schimba ordinea elementelor în șirul a și afişează pe ecran un
mesaj corespunzător. Se va utiliza un algoritm eficient din punct de vedere al timpului de
executare și al spațiului de memorie utilizat.
Exemplu:
[Link] se afişează mesajul
T
5 3 “b se poate obtine din a"
1 6 3 1 3
6 1 3
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
int main()
{
int a[5000],x,n,m,i,poz=-1,ok=0,j;
f>>n>>m;
for(i=0;i<n;i++)
f>>a[i];
for(i=0;i<m;i++)
{ f>>x;
for(j=poz+1;j<n;j++)
if(a[j]==x)
{
poz=j;
ok++;
break;
}
}
if(ok==m)
cout<<"b se poate obtine din a";
else cout<<"b nu se poate obtine din a";
return 0;
}
Subiectul nr.18
a. Scrieţi o definiţie completă pentru un subprogram suma cu trei parametri:
x, matrice pătratică cu elemente întregi;
n, număr natural ce reprezintă numărul efectiv de linii şi coloane ale matricei
x, 2≤n≤10;
p, număr natural, 1≤p≤n.
Subprogramul va returna suma elementelor aflate pe linia p a matricei.
b. Scrieţi un program care citeşte din fişierul [Link] un număr natural n şi o matrice
cu n linii şi n coloane şi afişează în fişierul [Link] indicii liniilor din matrice pentru
care suma elementelor este număr par. Se va folosi subprogramul definit la punctul a.
Exemplu:
matrice.i [Link]
n
4 1 4
1 2 3 4
1 1 1 2
2 2 41 8
3 3 10 2
#include<iostream>
#include<fstream>
using namespace std;
int suma(int x[10][10],int n,int p)
{
int j,S=0;
for(j=1;j<=n;j++)
S=S+x[p][j];
return S;
}
int main()
{
int x[10][10],n,i,j;
ifstream fin("[Link]");
ofstream fout("[Link]");
fin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fin>>x[i][j];
for(i=1;i<=n;i++)
if(suma(x,n,i)%2==0)
fout<<i<<" ";
[Link]();
[Link]();
return 0;
}
Subiectul nr.19
În fişierul text [Link] sunt cel mult 9998 de numere naturale nenule, distincte. Scrieţi
un program C/C++ eficient din punct de vedere al timpului de execuţie, care să scrie în
fişierul [Link], pe o linie, în ordine descrescătoare, separate prin câte un spaţiu,
numerele naturale nunule, de cel mult 4 cifre, care nu apar în fişierul [Link].
Ex:
[Link] [Link]
107 4 5 8 1 6 9 9999 9998 ... 108 106 105 ... 10 7 6 3 2
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int v[9999]={0},i;
ifstream fin("[Link]");
ofstream fout("[Link]");
while(fin>>i)
v[i]++;
for(i=9999;i>=1;i--)
if(v[i]==0)
fout<<i<<" ";
[Link]();
[Link]();
return 0;
}
Subiectul nr.20
Fişierul [Link] conţine pe prima linie un text format din cel mult 250 de caractere, scris pe
o singură linie. Cuvintele din text sunt separate prin câte un spaţiu, iar fiecare cuvânt este
format din cel mult 20 caractere, doar literele mici ale alfabetului englez. Fișierul conține pe a
doua linie un cuvânt format din cel mult 20 de caractere doar literele mici ale alfabetului
englez.
Se consideră subprogramul Sub care primește prin intermediul celor doi parametri t1 și
t2 două cuvinte formate fiecare din cel puţin două caractere şi returnează valoarea 1 dacă
cuvântul primit prin parametrul t1 reprezintă un prefix pentru cuvântul primit prin parametrul
t2, sau valoarea 0 în caz contrar;
Cerinţe:
a. Scrieţi definiţia completă a subprogramului sub;
b. Scrieţi un program Pascal/C/C++, care citeşte din fişierul [Link] în variabila s
textul aflat pe prima linie și în variabila x cuvântul aflat pe cea de a doua linie din
fișier și folosind apeluri utile ale subprogramului S1 şi afișează pe ecran fiecare
cuvânt din text care are ca prefix cuvântul x.
Exemplu. Dacă fişierul [Link] are conţinutul următor:
ambii copii amestecau ideile si amintirile de peste zi
am
programul va afișa pe ecran
ambii amestecau amintirile
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int sub(char t1[21],char t2[251])
{
char *p;
p=strstr(t2,t1);
if(p==t2)
return 1;
else return 0;
}
int main()
{
char s[251],x[21];
char *p;
ifstream f("[Link]");
[Link](s,250);
[Link](x,20);
p=strtok(s," ,:?!.;");
while(p)
{
if(sub(x,p))
cout<<p<<" ";
p=strtok(NULL," ,:?!.;");
}
[Link]();
return 0;
}
Subiectul nr.21
Fişierul [Link] conţine pe prima linie un text format din cel mult 250 de caractere, scris pe
o singură linie. Cuvintele din text sunt separate prin câte un spaţiu, iar fiecare cuvânt este
format din cel mult 20 caractere, doar literele mici ale alfabetului englez.
Se consideră subprogramul:Sub care primeste prin intermediul singurului său parametru
t un cuvânt din text și înlocuiește prima, respectiv ultima literă, cu litera mare
corespunzătoare şi furnizează prin intermediul parametrului t cuvântul obţinut. De exemplu,
pentru cuvântul intensitate primit prin intermediul parametrului t, subprogramul
returnează cuvântul: IntensitatE.
Cerinţe:
a) Scrieţi definiţia completă a subprogramului Sub;
b)Scrieţi un program Pascal/C/C++, care citeşte din fişierul [Link] în variabila s
textul aflat pe prima linie și folosind apeluri utile ale subprogramului Sub modifică textul
memorat în variabila s prin transformarea în literă mare a primei și ultimei litere din
fiecare cuvânt dint text. Programul scrie noul text în fişierul [Link] pe o singură linie.
Exemplu. Dacă fişierul [Link] are conţinutul următor:
ambii copii amestecau ideile si amintirile de peste zi
programul va scrie în fişierul [Link] textul:
AmbiI CopiI AmestecaU IdeilE SI AmintirilE DE PestE ZI
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
ifstream f("[Link]");
ofstream g("[Link]");
void sub(char t[21])
{
t[0]=t[0]-32;
t[strlen(t)-1]=t[strlen(t)-1]-32;
}
int main()
{
char s[251], aux[251]="",*p;
[Link](s,250);
p=strtok(s," ");
while(p)
{
sub(p);
strcat(aux,p);
strcat(aux," ");
p=strtok(NULL," ");
}
g<<aux;
[Link]();
[Link]();
}
Subiectul nr.22
Prima linie a fişierului [Link] conţine două numere naturale m şi n (1<=n,m<=100)
iar următoarele m linii câte n numere întregi cu maxim 9 cifre fiecare, separate prin câte
un spaţiu. Spunem că o linie a fişierului este simetrică dacă elementele egal depărtate de
capetele liniei respective sunt egale (primul element de pe linie este egal cu ultimul
element al liniei, al doilea cu penultimul etc.)
Se consideră subprogramul: verif cu trei parametri:
x, matrice cu elemente întregi;
n, număr natural ce reprezintă numărul efectiv de coloane ale matricei x,
2≤n≤10;
p, număr natural, 1≤p≤m.
Subprogramul va returna valoarea 1 linia p este simetrica și 0 în caz contrar.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului verif;
b. Scrieţi un program Pascal/C/C++, care citeşte din fişierul [Link] m, n și
elementele matricei și afişează pe ecran câte din cele m linii din fişier sunt
simetrice.
De exemplu dacă fişierul [Link] are următorul conţinut
3 5
15 3 0 3 15
5 9 1 9 5
6 8 20 8 3
atunci se va afişa pe ecran valoarea 2 (primele două din cele m linii sunt simetrice).
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
int verif(int x[100][100],int n,int p)
{
int i,j;
i=1; j=n;
while(i<j)
{
if(x[p][i]!=x[p][j])
return 0;
i++; j--;
}
return 1;
}
int main()
{
int x[100][100],n,m,i,j,k=0;
f>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
f>>x[i][j];
for(i=1;i<=m;i++)
if(verif(x,n,i)==1)
k++;
cout<<k;
[Link]();
return 0;
}
Subiectul nr.23
Fişierul [Link] conţine pe prima linie un cuvânt format din cel mult 50 de caractere, doar
litere mici ale alfabetului englez.
Se consideră subprogramul Sub care primeste prin intermediul singurului său parametrul
s un cuvânt (format din cel puţin 2 litere) și returnează cuvântul obţinut prin dublarea fiecărei
consoane din cuvântul s. De exemplu, pentru cuvântul abac (primit prin intermediul
parametrului s) subprogramul returnează cuvântul: abbacc.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului Sub;
b. Scrieţi un program Pascal/C/C++, care folosind apeluri utile ale subprogramului
Sub, citeşte textul din fişierul [Link] și scrie pe prima linie a fișierului [Link]
cuvântul obţinut prin dublarea fiecărei consoane din cuvântul s.
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, programul va scrie în atestat
fişierul [Link]:
Attessttatt
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
void sub(char s[51])
{
int i,k=0;
char t[51];
for(i=0;i<strlen(s);i++)
{
t[k++]=s[i];
if(strchr("aeiou",s[i])==0)
t[k++]=s[i];
}
t[k++]='\0';
strcpy(s,t);
}
int main()
{
ifstream f("[Link]");
ofstream g("[Link]");
char s[51];
[Link](s,50);
sub(s);
g<<s;
[Link]();
[Link]();
return 0;
}
Subiectul nr.24
Fişierul [Link] conţine două linii. Pe prima linie a fişierului este scris un număr natural n,
(1≤n≤100) iar pe următoarele n linii sunt scrise câte n numere naturale, formate fiecare
din cel mult 9 cifre, separate prin câte un spaţiu, reprezentând elementele unei matrice A cu
n linii și n coloane.
Se consideră subprogramul: sub cu trei parametri, care primeşte prin intermediul
parametrilor:
a,un tablou bidimensional format din cel mult 100 de linii și cel mult 100 de
coloane cu elemente numere întregi;
n,(1≤n≤100) numărul efectiv de linii și de coloane ale matricei a;
max, un număr natural nenul.
Subprogramul furnizează prin intermediul parametrului max, elementul maxim de pe
diagonala principală a matricei a.
.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului sub;
b. Scrieţi un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramului sub, să citească datele din fişierul [Link] şi care să scrie pe
ecran, elementul maxim de pe diagonala principală.
4
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, programul va afişa pe ecran
0 2 4
numerele următoare: 6
Elementul maxim = 9 1 3 5
7
6 4 2
8
3 5 7
9
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
void sub(int a[30][30],int n,int &maxi)
{
int i;
maxi=a[1][1];
for(i=2;i<=n;i++)
if(a[i][i]>maxi)
maxi=a[i][i];
}
int main()
{
int a[30][30],n,i,j,maxi;
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
sub(a,n,maxi);
cout<<"Elementul maxim = "<<maxi;
[Link]();
return 0;
}
Subiectul nr.25
Fişierul [Link] conţine două linii. Pe prima linie a fişierului este scris un număr natural n
(1≤n≤100), iar pe următoarele n linii sunt scrise câte n numere naturale, formate fiecare
din cel mult 9 cifre, separate prin câte un spaţiu, reprezentând elementele unei matrice A cu
n linii și n coloane.
Se consideră subprogramul S cu doi parametri, care primeşte, prin intermediul
parametrilor:
a,un tablou bidimensional format din cel mult 100 de linii și cel mult 100 de
coloane cu elemente numere întregi;
n,numărul efectiv de linii și de coloane ale matricei a.
Subprogramul returnează suma elementelor situate pe rama matricei, formată din
elementele situate pe prima linie, prima coloană, ultima linie și ultima coloană a matricei.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului S;
b. Scrieţi un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramelor S,să citească datele din fişierul [Link] şi care să scrie pe ecran,
suma elementelor de pe rama matricei.
4
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, programul va afişa pe ecran 0 2 4
numerele următoare: 6
Suma = 58 1 3 5
7
6 4 2
8
3 5 7
9
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
int S(int a[30][30],int n)
{
int suma=0;
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i==0||j==0||i==n-1||j==n-1)
suma+=a[i][j];
return suma;
}
int main()
{
int n,a[30][30],i,j;
f>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
f>>a[i][j];
cout<< "Suma="<<S(a,n);
return 0;
}
Subiectul nr.26
Fişierul [Link] conţine două linii. Pe prima linie a fişierului este scris un număr natural n,
(1≤n≤100) iar pe următoarele n linii sunt scrise câte n numere naturale, formate fiecare
din cel mult 9 cifre, separate prin câte un spaţiu, reprezentând elementele unei matrice A cu
n linii și n coloane.
Se consideră subprogramul: maxim cu trei parametri:
x, matrice cu elemente întregi;
n, număr natural ce reprezintă numărul efectiv de coloane ale matricei x,
2≤n≤100;
p, număr natural, 1≤p≤n.
Subprogramul va returna valoarea maximă de pe linia p a matricei.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului maxim;
b. Scrieţi un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramului maxim,să citească datele din fişierul [Link] şi care să scrie pe
ecran, separate prin câte un spațiu, elementele maxime de pe fiecare linie a matricei.
4
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, programul va afişa pe ecran 0 2 4
numerele următoare: 6
6 7 8 9 1 3 5
7
6 4 2
8
3 5 7
9
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
int maxim(int x[10][10],int n,int p)
{
int maxi=x[p][0]; //initializez cu primul element de pe linie
for(int i=0;i<n;i++)
if(maxi<x[p][i])
maxi=x[p][i];
return maxi;
}
int main()
{
int n,x[10][10],p,i,j;
f>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
f>>x[i][j];
for(i=0;i<n;i++)
cout<<maxim(x,n,i)<<" ";
[Link]();
return 0;
}
Subiectul nr.27
Fişierul [Link] conține, pe prima linie, un număr natural n (2<n<100), iar pe linia
a doua n numere cu cel mult 9 cifre fiecare.
Se consideră subprogramul maxim care primeşte prin intermediul parametrului A un vector cu
cel mult 100 de numere reale şi prin intermediul parametrului n numărul de elemente din vector. El
returnează valoarea celui mai mare element din vector, şterge toate apariţiile acestui element din
vector şi modifică corespunzător valoarea lui n.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului maxim;
b. Scrieţi un program principal Pasca/C/C++ care să citească datele din fişierul
[Link] şi care, folosind apeluri utile ale subprogramului maxim, să scrie pe ecran,
separate prin câte un spațiu, în ordine strict descrescătoare, numerele care apar în
vector..
9
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, programul va 2 3 1 1 6 2
afişa pe ecran numerele următoare: 7 6 1
7 6 3 2 1
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
float maxim(float a[100],int &n)
{
float maxi=a[1];
int i,j;
for(i=2;i<=n;i++)
if(maxi<a[i])
maxi=a[i];
for(i=1;i<=n;i++)
if(maxi==a[i])
{
for(j=i;j<n;j++)
a[j]=a[j+1];
n--;
i--;
}
return maxi;
}
int main()
{
float a[100];
int n;
f>>n;
for(int i=1;i<=n;i++)
f>>a[i];
while(n>0)
cout<<maxim(a,n)<<" ";
[Link]();
return 0;
}
Subiectul nr.28
Considerăm definit un subprogram nrap care are doi parametri: un şir de caractere s de
lungime cel mult 100 şi un caracter c. Subprogramul nrap întoarce numărul apariţiilor
caracterului c în şirul s.
a) Scrieţi definiţia completă a subprogramului nrap.
b) Scrieţi un program care citeşte de la tastatură două şiruri de caractere formate fiecare din
cel mult 100 de litere ale alfabetului englez şi, apelând subprogramul nrap descris mai sus,
verifică dacă cele două şiruri sunt formate din exact aceleaşi caractere, eventual în altă
ordine. În caz afirmativ programul va afişa pe ecran mesajul "DA", altfel va afişa "NU"
#include<iostream>
#include<string.h>
using namespace std;
int nrap(char s[101],char c)
{
int contor=0,i;
for(i=0;i<strlen(s);i++)
if(s[i]==c)
contor++;
return contor;
}
int main()
{
char a[101],b[101];
int i,ok=1;
[Link](a,100);
[Link](b,100);
if (strlen(a)!=strlen(b)) ok=0;
for(i=0;i<strlen(a);i++)
if(nrap(a,a[i])!=nrap(b,a[i]))
ok=0;
if(ok==0)
cout<<"NU";
else cout<<"DA";
return 0;
}
Subiectul nr.29
Fişierul [Link] conţine pe prima linie două numere naturale nenule m și n (1≤m≤30,
1≤n≤30), iar pe următoarele m linii câte n numere întregi, cu cel mult 9 cifre fiecare,
separate prin câte un spațiu, reprezentând elementele unei matrice A cu m linii și n coloane.
Se consideră subprogramul sub, care primeşte prin intermediul parametrilor:
A, o matrice cu cel mult 30 de linii și cel mult 30 de coloane, și elemente numere
întregi formate din cel mult 4 cifre fiecare;
n, un număr natural reprezentând numărul efectiv de coloane ale matricei A,
1≤n≤30.
k, un număr natural , 1<k≤m
Subprogramul furnizează suma elementelor situate pe linia k în matricea A.
Cerinţe:
a. Scrieţi definiţia completă a subprogramului sub.
b. Scrieţi un program principal Pascal/C/C++ care, citește matricea A din fişierul
[Link], calculează, folosind apeluri utile ale subprogramului sub, pentru fiecare
linie a matricei suma elementelor corespunzătoare și afișează pe ecran indicele
primei linii din matrice de sumă maximă, precum și valoarea acestei sume. Cele două
numere sunt afișate pe aceeași linie, separate printr-un spațiu.
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, programul va scrie pe
6 7
ecran: 4 39 (indicii liniilor de suma maximă sunt: 4 și 6). 4 3 8 5
8 0 2
5 1 3 5
9 6 8
6 7 4 9
3 2 1
3 8 1 9
7 8 3
1 2 1 3
5 2 9
4 7 9 9
3 4 3
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("[Link]");
int sub(int A[30][30],int n,int k)
{
int i,S=0;
for(i=0;i<n;i++)
S=S+A[k][i];
return S;
}
int main()
{
int A[30][30],n,m,i,j,maxi,l,k;
f>>m>>n;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
f>>A[i][j];
maxi=sub(A,n,0);
l=0;
for(i=1;i<m;i++)
{ k=sub(A,n,i);
if(k>maxi)
{
maxi=k;
l=i;
}
}
cout<<l+1<<" "<<maxi; //ca am indicii din matrice de la 0
[Link]();
}
Subiectul nr.30
Fişierul [Link] conţine cel mult 100 de numere naturale, fiecare număr fiind format din cel
mult 9 cifre, numerele fiind scrise pe o singură linie, separate prin câte un spaţiu.
Se consideră subprogramele:
prim cu un singur parametru x, prin intermediul căruia primeşte un număr natural
nenul format din cel mult patru cifre şi care returnează valoarea 1 dacă valoarea
parametrului x este un număr prim și 0 în caz contrar.
Sort cu doi parametri, care primeşte prin intermediul parametrilor:
n, un număr natural, 0<n≤100;
v,un şir de n numere naturale, fiecare număr având cel mult patru cifre.
Subprogramul furnizează prin parametrul v şirul ordonat crescător.
Cerinţe:
a. Scrieţi definiţia completă a subprogramelor prim și sort.
b. Scrieţi un program Pascal/C/C++, care citeşte din fişierul [Link] toate numerele
şi, folosind apeluri utile ale subprogramelor prim și sort, scrie în fişierul
[Link], pe o singură linie, separate printr-un spaţiu, două numere naturale
reprezentând cel mai mic număr prim, respectiv cel mai mare număr prim din fişierul
[Link]. Dacă niciun număr din fişierul [Link] nu este număr prim, atunci pe
prima linie a fişierului [Link] se va scrie mesajul NU EXISTA.
Exemplu. Dacă fişierul [Link] are conţinutul alăturat, atunci fişierul 3 11 7 13 56
[Link] va avea următorul conţinut: 732 99
3 13
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
ifstream fin("[Link]");
int prim(int x)
{
if(x<2)
return 0;
for(int i=2;i<=sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
void sortare(int v[100],int n)
{
int aux,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
int main()
{
int v[100],x,n=0;
while(fin>>x)
if(prim(x))
{
v[n]=x;
n++;
}
sortare(v,n);
if(n==0)
fout<<"NU EXISTA";
else cout<<v[0]<<" "<<v[n-1];
return 0;
}