Documente Academic
Documente Profesional
Documente Cultură
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
#include <iostream.h>
void 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<<e ndl;
}
Problema 2:
Sa se determine toti divizorii unui numar intreg citit de la tastatura.
#include <iostream.h>
void main(void)
{
int n,i;
cout<<"Dati numarul ";cin>>n;
cout<<"Divizorii numarului "<<n<<" sunt: ";
1
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.
#include <iostream.h>
void 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";
}
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).
#include <iostream.h>
void 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.
#include <iostream.h>
void main(void)
{
int n,i,max,min,x;
min=32367;
max=-32368;
Problema 6:
Sa se calculeze suma cifrelor unui numar intreg.
#include <iostream.h>
void 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 "<<sum a<<endl;
}
Problema 7:
Sa se verifice daca un numar este palindrom sau nu. Spunem ca un numa este
palindrom daca este egla cu rasturnatul sau (adica numarul format din cifrele de la
dreapta la stanga ale numarului initial – exemplu : n = 25652).
#include <iostream.h>
void main(void)
{
int n,r,m=0,x;
cout<<"Dati numarul ";cin>>n;
x=n;
while(n!=0)
{
r=n%10;
m+=r;
n=n/10;
}
if(x==m)
cout<<"Numarul "<<x<<" este PALINDROM"<<endl;
else
cout<<"Numarul "<<x<<" NU este PALINDROM"<<endl;
}
3
Probleme propuse spre rezolvare