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 🙂