Descompunerea in factori primi C++

ENUNT: Se citeste de la tastatura un numar n. Determinati si afisati pe ecran descompunerea in factori primi ai acestuia.

#include <iostream>
using namespace std;
//se declara variabilele n,d,p de tip intreg
//variabila n memoreaza numarul citit de la tastatura
//variabila d este folosita pentru a identifica daca n are divizori proprii
//variabila p memoreaza puterea la care apare un factor prim
int n,d,p;
int main()
{
//se citeste de la tastatura numarul n
cout<<"Introduceti numarul n: ";
cin>>n;
//variabila d este initializata cu 2 (primul posibil divizor propriu)
d=2;
//se determina daca numarul n are divizori proprii
while(n>1)
{
p=0;//p este initializat cu 0, pentru ca de fiecare data cand se reia instructiunea while sa se poata determina puterea la care apare factorul prim
//se verifica daca numarul n se imparte de mai multe ori la numarul d
while(n%d==0)
{
p++; //se contorizeaza puterea la care apare factorul prim in descompunere
n=n/d; //se imparte n la d pentru a se putea continua impartirea si identificarea puterii
}
//daca numarul d se imparte macar o data la n se afiseaza d, alaturi de puterea la care apare in descompunere
//daca p este 0 inseamna ca numarul d nu se imparte deloc la n
if(p>0)
cout<<d<<"^"<<p<<" ";
d=d+1; //creste d, pentru a putea identifica si alti factori primi ai descompunerii
}
}

Video YouTube in care explicam cum functioneaza algoritmul de descopunere in factori primi in C++:

Exemplu:Descompunerea in factori primi C++Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Testul de numar prim C++

ENUNT: Se citeste de la tastatura un numar n. Determinati daca numarul citit este prim si afisati un mesaj corespunzator.
Codul afisat mai jos determina daca numarul are divizori proprii, pe care ii numara folosind variabila nr. In final, daca numarul are divizori proprii, programul afiseaza mesajul “Numarul nu este prim”, iar daca nr = 0 (numarul nu are divizori proprii), afiseaza mesajul “Numarul este prim”.
Un numar este prim daca are doar divizori improprii (daca este divizibil doar cu 1 si cu el insusi).

#include <iostream>
using namespace std;
//se declara variabilele n,d si i de tip intreg
//variabila n memoreaza numarul introdus de la tastatura
//variabila d este folosita pentru a determina divizorii proprii
//variabila nr numara divizorii proprii ai lui n
int n,d,nr;
int main()
{
// se citeste numarul n de la tastatura
cout<<"Introduceti numarul n: ";
cin>>n;
//se determina daca numarul are divizori proprii
for(d=2;d<=n/2;d++)
{//d este initalizat cu 2 (primul divizor propriu posibil)
//instructiunea merge pana la n/2 deoarece nu pot exista divizori proprii intre n/2 si n
if(n%d==0) //conditia ca d sa fie divizor propriu al lui d
nr++;
}
if(nr==0)
cout<<"Numarul este prim";
else
cout<<"Numarul nu este prim";
return 0;
}

Video YouTube:

Exemplu:Testul de numar prim C++ Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Divizorii proprii ai unui numar C++

ENUNT: Se citeste de la tastatura un numar n. Determinati si afisati divizorii proprii ai acestuia in caz ca exista.
Codul afisat mai jos parcurge intervalul [2, n/2] printr-o instructiune for, folosind variabila d. In cazul in care aceasta divide numarul n, atunci ea este afisata, intrucat este un divizor propriu al numarului n.
Un numar n poate avea divizori proprii si improprii.
Divizorii improprii ai unui numar sunt 1 si numarul insusi.
Divizorii proprii sunt restul numerelor care divid pe n, cuprinse intre [n, n/2]. 

#include <iostream>
using namespace std;
//se declara variabilele n,d si i de tip intreg
//variabila n memoreaza numarul introdus de la tastatura
//variabila d este folosita pentru a determina divizorii proprii0
int n,d;
int main()
{
// se citeste numarul n de la tastatura
cout<<"Introduceti numarul n: ";
cin>>n;
//se determina divizorii proprii
cout<<"Divizorii proprii ai lui n sunt: ";
for(d=2;d<=n/2;d++)
//d este initalizat cu 2 (primul divizor propriu posibil)
//instructiunea merge pana la n/2 deoarece nu pot exista divizori proprii intre n/2 si n
if(n%d==0) //conditia ca d sa fie divizor propriu al lui d
cout<<d<<" "; // se afiseaza pe rand divizorii proprii ai lui n
return 0;
}

Exemplu:Divizorii proprii ai unui numar C++Spor la lucuru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Cel mai mic multiplu comun (cmmmc) C++

ENUNT: Se citesc de la tastatura doua numere a si b. Determinati si afisati cel mai mic multiplu comun al acestora.
Codul de mai jos afla cel mai mare divizor comun (cmmdc) al celor doua numere pentru ca mai apoi sa-l foloseasca pentru a determina cel mai mic multiplu comun (cmmmc) folosind formula consacrata,
cmmmc = (a*b) / cmmdc.

#include <iostream>
using namespace std;
//se declara variabilele a,b,x,y de tip intreg
//variabilele a si b memoreaza cele 2 numere introduse de la tastatura
//variabilele x si y memoreaza copia numerelor a si b
int a,b,x,y;
int main()
{
// se citesc numerele a si b
cout<<"Introduceti numerele a si b: "<<endl;
cin>>a>>b;
// se copiaza numerele a si b in variabilele x si y
x=a;
y=b;
// se determina cmmdc-ul dintre a si b folosind variabilele x si y
while(x!=y)
{
if(x>y)
x=x-y;
else
y=y-x;
}
// in urma executarii instructiunii while cmmdc-ul este memorat acum in variabila x
// se afiseaza cmmmc dintre cele doua numere folosind formula de determinare acestuia cu ajutorul cmmdc
cout<<"cmmmc = "<<(a*b)/x;
}
view raw cmmmc.cpp hosted with ❤ by GitHub

Exemplu:
Cel mai mic multiplu comun (cmmmc) C++Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Cel mai mare divizor comun (cmmdc) C++

ENUNT: Se citesc de la tastatura doua numere a si b. Determinati si afisati pe ecran cel mai mare divizor comun al acestora.
Codul de mai jos determina cel mai mare divizor comun al lui a si b prin scaderi repetate, afisandu-l la final.

#include <iostream>
using namespace std;
//se declara variabilele a si b de tip intreg
//variabila a memoreaza primul numar introdus de la tastatura
//variabila b memoreaza al doilea numar introdus de la tastatura
int a,b;
int main()
{
//se citesc numerele a si b
cout<<"Introduceti numerele a si b: "<<endl;
cin>>a>>b;
//se determina cel mai mic divizor comun prin scaderi repetate
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
//se afiseaza a (care memoreaza acum cmmdc-ul dintre cele 2 numere)
cout<<"Cmmdc = "<<a;
}
view raw cmmdc.cpp hosted with ❤ by GitHub

Exemplu:
Cel mai mare divizor comun (cmmdc) C++
Video pe YouTube in care explicam cum functioneaza algoritmul:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Inlocuirea primei cifre cu ultima C++

ENUNT: Se citeste de la tastatura un numar n. Determinati si afisati numarul format prin inlocuirea primei cifre a numarului cu ultima cifra a sa.

#include <iostream>
using namespace std;
//se declara variabilele n,cn,ultima si p de tip intreg
//variabila n memoreaza numarul introdus de la tastatura
//variabila cn memoreaza numarul obtinut prin inlocuirea primei cifre cu ultima
//variabila ultima memoreaza ultima cifra a numarului n
//variabila p memoreaza o putere a lui 10 care indica ordinul pozitiei primei cifre in numarul n (unitati, zeci, sute, etc.)
int n,cn,ultima,p;
int main()
{
cout<<"Introduceti numarul n: ";
//se citeste numarul n
cin>>n;
//se memoreaza ultima cifra
ultima=n%10;
//se initializeaza cn cu valoarea numarului n
cn=n;
//p se initializeaza cu valoarea elementului neutru la inmultire
p=1;
while(n>9)//eliminam cifre din numar pana cand n este egal cu prima sa cifra
{
p=p*10;//se mareste puterea lui 10 pana cand se ajunge la prima cifra a lui n
n=n/10;//se elimina o cifra din numar
}
// ultima*p- ultima cifra ia prima pozitie in noul numar
// +cn%p - se adauga cifrele de pe restul pozitiilor la numar
// /10)*10- se elimina ultima cifra din numar pentru a fi inlocuita cu prima
// +n- ultima cifra devine prima cifra memorata in n
cn=((ultima*p + cn%p)/10)*10+n;
//se afiseaza numarul obtinut
cout<<"Numarul format prin inlocuirea primei cifre cu ultima in numarul n este : "<<cn;
return 0;
}

Exemplu: Inlocuirea primei cifre cu ultima C++
Video nou pe YouTube in care explicam cum se inclocuieste prima cifra a unui numar cu ultima sa cifra in C++:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Eliminarea cifrelor impare dintr-un numar C++

ENUNT: Se citeste de la tastatura un numar n. Eliminati cifrele impare ale acestuia si afisati numarul astfel obtinut.

#include <iostream>
using namespace std;
// se declara variabilele n,m si p de tip intreg
//variabila n memoreaza numarul introdus de la tastatura
//variabila m memoreaza numarul format prin eliminarea cifrelor impare ale lui n
//variabila p memoreaza o putere a lui 10 si ajuta la construirea numarului cerut prin adaugarea fiecarei cifre pare pe pozitia corespunzatoare(unitati,zeci,sute etc.)
int n,m,p;
int main()
{// se citeste numarul n
cout<<"Introduceti numarul n: ";
cin>>n;
//p se initializeaza cu elementul neutru al inmultirii
p=1;
//construim numarul m cu cifrele pare ale lui n, astfel m o sa reprezinte numarul format prin eliminarea cifrelor impare
while(n>0)
{
if(n%2==0)//se verifica daca cifra este para
{
m=(n%10)*p+m;// se adauga cifra pe pozitia corespunzatoare in numarul nou format(unitati, zeci, sute etc.)
p=p*10;//se mareste puterea lui 10, pentru ca urmatoarea cifra para sa fie adaugata din nou pe pozitia corespunzatoare(zeci, sute, mii etc.)
}
n=n/10;//se elimina cifra din numar
}
//se verifica daca numarul n are cel putin o cifra para
if(p==1)// daca p ramane egal cu 1 inseamna ca testul n%2==0 nu a fost trecut pentru nicio cifra a lui n, deci numarul are numai cifre impare
{
cout<<"Numarul are numai cifre impare";
} else
{// se afiseaza numarul m obtinut prin eliminarea cifrelor impare ale lui n, format doar din cifre pare
cout<<"Prin eliminarea cifrelor impare ale lui n se obtine numarul: "<<m;
}
return 0;
}

Exemplu:
Eliminarea cifrelor impare dintr-un numar C++
Video YouTube in care explicam cum functioneaza algoritmul care sterge cifrele pare sau impare dintr-un numar in C++:

Spor la lucru! Daca aveti intrebari nu ezitati sa le puneti in comentarii, va vom raspunde cat de repede putem 🙂

Eliminarea cifrelor pare dintr-un numar C++

ENUNT: Se citeste de la tastatura un numar n. Eliminati cifrele pare ale acestuia si afisati numarul astfel obtinut.

#include <iostream>
using namespace std;
// se declara variabila n,m si p de tip intreg
//variabila n memoreaza numarul introdus de la tastatura
//variabila m memoreaza numarul format prin eliminarea cifrelor pare ale lui n
//variabila p memoreaza o putere a lui 10 si ajuta la construirea numarului cerut prin adaugarea fiecarei cifre impare pe pozitia corespunzatoare(unitati,zeci,sute etc.)
int n,m,p;
int main()
{// se citeste numarul n
cout<<"Introduceti numarul n: ";
cin>>n;
//p se initializeaza cu elementul neutru al inmultirii
p=1;
//construim numarul m cu cifrele impare ale lui n, astfel m o sa reprezinte numarul format prin eliminarea cifrelor pare
while(n>0)
{if(n%2==1)//se verifica daca cifra este impara
{m=(n%10)*p+m;// se adauga cifra pe pozitia corespunzatoare in numarul nou format(unitati, zeci, sute etc.)
p=p*10;//se mareste puterea lui 10, pentru ca urmatoarea cifra impara sa fie adaugata din nou pe pozitia corespunzatoare(zeci, sute, mii etc.)
}
n=n/10;//se elimina cifra din numar
}
//se verifica daca numarul n are cel putin o cifra impara
if(p==1)// daca p ramane egal cu 1 inseamna ca testul n%2==1 nu a fost trecut pentru nicio cifra a lui n, deci numarul are numai cifre pare
cout<<"Numarul are numai cifre pare";
else
{// se afiseaza numarul m obtinut prin eliminarea cifrelor pare ale lui n, format doar din cifre impare
cout<<"Prin eliminarea cifrelor pare ale lui n se obtine numarul: "<<m;
}
return 0;
}

Exemplu:Eliminarea cifrelor pare dintr-un numar C++

Video YouTube in care explicam cum functioneaza algoritmul care sterge cifrele pare sau impare dintr-un numar in C++:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Testul de palindrom C++

ENUNT:  Se citeste de la tastatura un numar n. Verificati daca acesta este un palindrom si afisati pe ecran mesajul corespunzator.
Palindrom = numar care scris invers este egal cu el insusi. Exemple de numere care sunt palindroame: 121, 12344321, 100001 etc.
Codul afisat mai jos, construieste in variabila ogl, inversul / oglinditul numarului n, pe care in final o compara cu copia lui n creata la inceput si determina daca numarul initial n este un palindrom, afisand un mesaj corespunzator pe ecran.

#include <iostream>
using namespace std;
// se declara variabilele n, ogl si cn de tip intreg
// variabila n memoreaza numarul introdus de la tastatura
// variabila cn memoreaza copia lui n
// variabila ogl memoreaza oglinditul / inversul lui n
int n, ogl, cn;
int main()
{
cout<<"Introduceti numarul n: ";
// se citeste numarul n
cin >> n;
// copiem valoarea lui n
cn=n;
//construirea oglinditului
while (n != 0)
{
ogl = ogl * 10 + n % 10; // se inverseaza cifra cu cifra numarul n
n = n / 10; // se taie pe rand cifrele lui n
}
//testul de palindrom + afisarea mesajului corespunzator
if(cn==ogl)
cout<<"Numarul este palindrom";
else
cout<<"Numarul nu este palindrom";
return 0;
}

Exemplu:Testul de palindrom C++
Video YouTube despre cum testam daca un numar este palindrom sau nu:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Oglinditul / inversul unui numar C++

ENUNT: Se citeste de la tastatura un numar natural n. Determinati si afisati oglinditul / inversul acestuia.
Codul afisat mai jos, parcurge cifra cu cifra numarul n si construieste in variabila ogl, oglinditul / inversul numarului n pe care in final il afiseza.

#include <iostream>
using namespace std;
// se declara variabilele n si ogl de tip intreg
// variabila n memoreaza numarul introdus de la tastatura
// variabila ogl memoreaza oglinditul / inversul numarului n
int n, ogl;
int main()
{
cout<<"Introduceti numarul n: ";
// se citeste numarul n
cin >> n;
// se construieste oglinditul / inversul lui n
while (n != 0)
{
ogl = ogl * 10 + n % 10; // se inverseaza cifra cu cifra numarul
n = n / 10; // se taie pe rand cifrele numarului
}
// se afiseaza oglinditul lui n
cout << "Oglinditul numarului 'n' este: "<< ogl;
return 0;
}

Exemplu:Oglinditul / inversul unui numar C++
Video YouTube in care explicam cum construim inversul sau oglinditul unui numar in C++:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂