Documente Academic
Documente Profesional
Documente Cultură
Platforma evaluare
Clasa a V-a
Reamintim
Instrucțiunea while are următoare sintaxă:
while (condiție) ;
{Instrucțiune;}
Observații:
1. dacă la prima evaluare a condiţiei aceasta este falsă, instrucțiunea/instrucţiunile nu se execută
2. dacă sunt două sau mai multe instrucţiuni care trebuie executate repetat în while, ele se vor încadra
între { }
ATENȚIE !!!!
Atunci când prelucrăm cifrele unui număr valoarea acestuia devine 0!!!
p=1;
while (n!=0) cât timp n este diferit de 0
{
uc=n%10;
n=n/10;
nr++;///p=p*uc;///ogl=ogl*10 + uc;
}
n ajunge 0
Probleme propuse
1. Se citesc n (2<=n<=100) numere naturale, fiecare cu cel puțin 2 și cel mult 9 cifre. Să se afișeze
numărul care are prima cifră mai mare. Dacă există mai multe astfel de numere se afișează ultimul
număr citit.
Exemplu:
pentru n=5 și numerele 345 913 76 657 99, se afișează 99.
Soluție:
#include <iostream>
using namespace std;
int n,uc,a,copie,maxim,nrmaxim;
int main()
{
cin >> n;
for (int i=1; i<=n; i++)
{
cin >> a;
copie=a;
while (a>9)
a=a/10;
if (a>=maxim)
{
maxim=a;
nrmaxim=copie;
}
}
cout << nrmaxim;
return 0;
}
2. Se citește n număr natural cu cel puțin 4 și cel mult 15 cifre. Să se calculeze produsul primelor 3
cifre ale sale
Exemplu:
pentru n=6582194568, se afișează 240.
Soluție:
#include <iostream>
using namespace std;
int main()
{
long long int n,u,p=1;
cin>>n;
while (n>999)
n=n/10;
while(n!=0)
{
u=n%10;
p=p*u;
n=n/10;
}
cout<<p;
return 0;
}
Lecţia 6 – Prelucrare a cifrelor. CMMDC. Platforma evaluare
Clasa a V-a
3. Se citește n număr natural cu un număr impar de cifre, cel puțin 3 cel mult 17. Să se determine și
afișeze numărul format de cele 3 cifre din mijloc.
Exemplu:
pentru n=65821945685, se afișează 194
Soluție:
#include <iostream>
using namespace std;
long long int n,x,copie,nr,p,i;
int main()
{
cin>>n;
copie=n;
while (n!=0)
{
n=n/10;
x++;
}
nr=x/2-1;
p=1;
for (i=1; i<=nr; i++)
p=p*10;
cout<<copie/p%1000<<endl;
return 0;
}
2. Prin împărțiri repetate care presupune împărțirea în mod repetat a unuia dintre numere la celălalt
până obținem restul 0.
Implementare C++
#include <iostream>
using namespace std;
int a, b, r;
int main()
{
cin>>a>>b;
while (b!=0)
{
r=a%b;
a=b;
b=r;
}
cout<<a;
return 0;
}
Implementare C++
#include <iostream>
using namespace std;
int a, b, r, cmmmc, p;
int main()
{
cin>>a>>b;
p = a*b;
while (b!=0)
{
r=a%b;
a=b;
b=r;
}
cmmmc = p / a;
cout<<cmmmc;
return 0;
}
Lecţia 6 – Prelucrare a cifrelor. CMMDC. Platforma evaluare
Clasa a V-a
Primul număr prim este 2, care este și singurul număr prim par!!
Teoria fundamentală a aritmeticii spune că orice număr întreg mai mare decât 1 poate fi scris ca produsul
unic a unu sau mai multe numere prime.
Divizorii primi ai unui număr natural n sunt cuprinși între 2 și n. Pentru a determina divizorii primi ai lui n
vom proceda astfel:
parcurgem succesiv aceste numere (de la 2 la n) și pentru un divizor curent d al lui n:
o determinăm puterea sa în descompunere numărând de câte ori se poate împărții n la d.
Această împărțire se realizează efectiv.
o afișam divizorul curent d și puterea sa;
procesul se încheie când n devine 1.
Implementare C++
Forma 1
#include <iostream>
using namespace std;
int n, d, p; ///n - numarul citit, d - divizorul, p - puterea divizorului
int main()
{
cin>>n;
d=2; ///primul divizor prim este 2
while(n>1)
{
p=0; ///puterea divizorului
while(n%d==0)
{
n=n/d;
p++;
}
if(p!=0)
cout<<d<<" la putere "<<p<<endl;
d++; ///trec la urmatorul divizor
}
return 0;
}
Forma 2
#include <iostream>
using namespace std;
int n, d, p; ///n - numarul citit, d - divizorul, p - puterea divizorului
int main()
{
cin>>n;
int p=0;
while(n%2==0) { n/=2; p++;}
if(p) cout<<2<<” |”<<p<<’\n’;
for(d=3; d*d<=n; d+=2)
if(n%d==0)
{ p=0;
Lecţia 6 – Prelucrare a cifrelor. CMMDC. Platforma evaluare
Clasa a V-a
while(n%p==0)
{n/=d; p++;}
if(p)
cout<<f<<” ”<<p<<’\n’;
}
if(n>1)
cout<<n<<” ”<<1;
}
TEMĂ
Rezolvați, de pe platforma indicată, următoarele probleme:
- http://pbinfo.ro: #2162, #2111, #1420, #2223, #121, #871,
#364, #3251, #1424, #3303, #411, #80,
#3271, #409, #410, #305, #378, #2305, #2566
- http://campion.edu.ro/arhiva: codcorect, triplu, case1, fazanr, alo
SUCCES!