Sunteți pe pagina 1din 5

Laborator – programarea calculatoarelor (2013)

Limbajul C++
Adrian Runceanu

Laborator nr. 4
Instrucţiuni repetitive în C++

Problema 1:
Sa se determine cel mai mare divizor comun (c.m.m.d.c.) si cel mai mic
multiplu comun (c.m.m.m.c.) a doua numere intregi citite de tastatura.
Cmmdc se va calcula folosind cele doua variante:
 algoritmul lui Euclid
 folosind relatia de mai jos:
cmmdc(a-b,b), daca a > b
cmmdc(x,y) = cmmdc(a,b-a), daca a < b
a, daca a = b

Solutie:

#include <iostream.h>
int main(void)
{
int a,b,x,y,r,cmmdc1,cmmdc2,cmmmc;
cout<<"Dati primul numar "; cin>>a;
cout<<"Dati al doilea numar "; cin>>b;
// calculam c.m.m.d.c. folosind algoritmul lui Euclid
x=a;
y=b;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
cmmdc1=b;
cout<<"Cmmdc este "<<cmmdc1<<endl;
// calculam c.m.m.d.c. folosind relatia data
while(a!=b)
if(a>b)
a=a-b;
else
if(a<b)
b=b-a;
cmmdc2=a;
cout<<"Cmmdc este "<<cmmdc2<<endl;
cmmmc=(x*y)/cmmdc1;
cout<<"Cmmmc este "<<cmmmc<<endl;
}

1
Laborator – programarea calculatoarelor (2013)
Limbajul C++
Adrian Runceanu

Problema 2:

Sa se determine toti divizorii unui numar intreg citit de la tastatura.

Solutie:

#include <iostream.h>
int main(void)
{
int n,i;
cout<<"Dati numarul ";cin>>n;
cout<<"Divizorii numarului "<<n<<" sunt: ";
for(i=1;i<=n;i++)
if(n%i==0)
cout<<" "<<i;
}

Problema 3:

Sa se verifice daca un numar este numar prim sau nu. Spunem ca un


numar n este numar prim daca are ca divizori numai valorile 1 si n.

Solutie:

#include <iostream.h>
int main(void)
{
int n,i,prim;
cout<<"Dati numarul ";cin>>n;
prim=1;
for(i=2;i<=n/2;i++)
if(n%i==0) prim=0;
if(prim==1)
cout<<"Numarul "<<n<<" este numar PRIM";
else
cout<<"Numarul "<<n<<" NU este numar PRIM";
}

2
Laborator – programarea calculatoarelor (2013)
Limbajul C++
Adrian Runceanu
Problema 4:
Sa se verifice daca un numar este numar perfect sau nu. Spunem ca
un numar este numar perfect daca este egal cu suma divizorilor lui, mai putin
el insusi. (Exemplu: numarul 6 este perfect, deoarece este egal cu suma
divizorilor sai 1,2,3).

Solutie:

#include <iostream.h>
int main(void)
{
int n,i,s=0;
cout<<"Dati numarul ";cin>>n;

for(i=1;i<=n/2;i++)
if(n%i==0) s+=i;
if(n==s)
cout<<"Numarul "<<n<<" este numar PERFECT";
else
cout<<"Numarul "<<n<<" NU este numar PERFECT";
}

Problema 5 :
Se citesc n numere intregi. Sa se determine minimul si maximul lor.

Solutie:

#include <iostream.h>
int main(void)
{
int n,i,max,min,x;
min=32367;
max=-32368;
cout<<"Dati numarul ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"dati numarul "<<i<<" ";
cin>>x;
if(max<x) max=x;
if(min>x) min=x;
}
cout<<"Maximul este "<<max<<endl;
cout<<"Minimul este "<<min;
}

3
Laborator – programarea calculatoarelor (2013)
Limbajul C++
Adrian Runceanu

Problema 6:
Sa se calculeze suma cifrelor unui numar intreg.

Solutie:

#include <iostream.h>
int main(void)
{
int n,i,suma=0,r;
cout<<"Dati numarul ";
cin>>n;
while(n!=0)
{
r=n%10;
suma+=r;
n=n/10;
}
cout<<"Suma este "<<suma<<endl;
}

4
Laborator – programarea calculatoarelor (2013)
Limbajul C++
Adrian Runceanu

Probleme propuse spre rezolvare

Problema 1 :
Sa se verifice daca un numar este palindrom sau nu. Spunem ca un
numar este palindrom daca este egal cu rasturnatul sau (adica numarul
format din cifrele de la dreapta la stanga ale numarului initial – exemplu : n =
25652).

Problema 2 :
Să se scrie un program care citeşte n numere întregi şi determină
media aritmetică a valorilor strict pozitive din cele citite.

Problema 3 :
Să se scrie un program care calculează factorialul unui număr n citit de
la tastatură.

Problema 4 :
Se consideră un punct P0 şi n puncte din plan. Să se scrie un program
care determină cel mai apropriat punct de P0 din cele n date şi distanţa
corespunzătoare.

Problema 5 :
Să se scrie un program care să construiască un număr m din cifrele
pare ale unui număr natural n, dar luate în ordine inversă.

Problema 6 :
Să se scrie un program care să determine cel mai mic număr <=n,
care are număr maxim de divizori proprii. Divizorii proprii sunt valorile diferite
de 1 şi de numărul respectiv la care numărul se împarte exact.

S-ar putea să vă placă și