Sunteți pe pagina 1din 3

BAC 2017 Varianta 5

SI.1.c
2. a) 14
b) (10;15)
c) citeste a,b
s<-0
x<-a
cat timp x≤b executa
|pentru j<-1,[x/2] executa
||daca x%j=0 si [√j]*[√j]=j atunci
|||s<-s+j
|||-[]
||-[]
|x<-x+1
|-[]
scrie s

d) #include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, b, s;
cin>>a>>b;
s=0;
for(int x=a; x<=b; x++)
for(int j=1; j<=x/2; j++)
if(x%j==0 && floor(sqrt(j))*floor(sqrt(j))==j)
s+=j;
cout<<s;
return 0;
}

SII. 1. d
2. b
3. t[0].x==t[0].y && t[0].x==t[0].z
4.
0 1 0 0 0
0 0 1 0 0
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0
5. #include <iostream>
using namespace std;
int main()
{
int m, n, a[50][50], pmin=10001, umin=10001, p, u;
cin>>m>>n;
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
{
cin>>a[i][j];
if(j==0 && a[i][j]<pmin)
{
pmin=a[i][j];
p=i;
}
else if(j==n-1 && a[i][j]<umin)
{
umin=a[i][j];
u=i;
}
}
int aux=a[p][j];
a[p][j]=a[u][j];
a[u][j]=aux;
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
cout<<a[i][j]<<’ ‘;
cout<<’\n’;
}
return 0;
}

SIII. 1.b
2.10 2
3.void produs(int a, int &k)
{
int s=0;
for(int i=1; i<=a; i+=2)
if(s+i<=a)
{
s+=i;
k=i;
}
else break;
}
4.b) #include <iostream>
#include <fstream>
using namespace std;
ifstream f(“bac.txt”);
int main()
{
int x, y, nr=1;
bool ok=false;
f>>x;
while(f>>y)
{
if(y==x)
nr++;
else
{
if(nr%2==1)
{
cout<<x;
ok=true;
break;
}
x=y;
nr=1;
}
}

if(ok==false)
if(nr%2==1)
cout<<y;
else
cout<<”nu exista”;
return 0;
}
a)Algoritmul retine doar cate 2 numere din sir odata, crescand numarul de aparitii
cand numarul citit este egal cu cel precedent. Cand nu este egal se testeaza daca
numarul citit anterior are un numar impar de aparitii. Daca da, se afiseaza numarul
anterior citit si se opreste citirea restului numerelor. Daca nu, numarul de aparitii de
reinitializeaza cu 1. Daca in tot sirul dat nu exista niciun numar cu proprietatile
dorite, se afiseaza “nu exista”.
Algoritmul este eficient din punct de vedere al memoriei utilizate deoarece foloseste
putine variabile, intrucat retine doar ultimele doua numere citite din sir, in loc sa
salveze tot sirul intr-un vector. Algoritmul foloseste 3 variabile de tip int, si una de tip
bool, adica 13 octeti.
Algoritmul este eficient din punct de vedere al timpului de executare deoarece face
putini pasi, intrucat se parcurge o singura data sirul dat, verificarile necesare
rezolvarii facandu-se concomitent cu citirea numerelor. Complexitatea este O(n),
unde n este numarul de elemente al sirului.