1. Se citește un număr natural nenul n. Scrie un program C++, utilizând instrucțiunea While, care afișează toți divizorii săi naturali în ordine crescătoare.
Soluție:
using namespace std;
int main()
{
int n,d;
cout << "Introduceti un numar natural n: ";
cin>>n;
d=1;
while(d<=n)
{
if (n%d==0)
cout <<d<< endl;
d=d+1;
}
}
3. Se citește un număr natural a. Scrie un program C++ care să determine numărul de cifre ale numărului a.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a,c;
cout << "Introduceti numarul natural a: ";
cin>>a;
c=1;
while (a>9)
{
c=c+1;
a=a/10;
}
cout << "Numarul de cifre este "<<c;
}
5. Se citesc două numere naturale nenule a și b. Scrie un program C++ care afișează cel mai mare divizor comun al lor.
Soluție:
#include <iostream>
using namespace std;
int main()
{
// Se folosește algoritmul lui Euclid - metoda scăderilor repetate.
// Cât timp numerele sunt diferite, se scade numărul mai mic din numărul mai mare.
// Când numerele devin egale, valoarea lor comună este cmmmdc al valorilor inițiale.
int a,b;
cout << "Introduceti numarul a: ";
cin>>a;
cout << "Introduceti numarul b: ";
cin>>b;
while (a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
cout << "cmmdc este egal cu "<<a;
}
7. Se citește un număr natural n. Scrie un program C++ care afișează un mesaj corespunzător dacă numărul este palindrom sau nu. Un număr se numește palindrom dacă răsturnatul său este egal cu el.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,c,rast;
cout << "Introduceti numarul natural n: ";
cin>>n;
c=n;
rast=0;
while(c!=0)
{
rast=rast*10+c%10;
c=c/10;
}
if (rast==n)
cout << "Numarul este palindrom.";
else
cout << "Numarul nu este palindrom.";
}
9. Se citește un număr natural n. Scrie un program C++, utilizând instrucțiunea For, care să afișeaze pătratele perfecte mai mici sau egale cu n.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n, i, j, ok;
cout << "Introduceti numarul natural n: ";
cin>>n;
for (i=n; i>=0; i--)
{
ok=0;
for(j=0; j<=i; j++)
if(j*j==i)
ok=1;
if(ok==1)
cout <<i<< " ";
}
}
11. Se citește un număr natural nenul n. Scrie un program C++ care afișează toate numerele prime mai mici decât n, în ordine descrescătoare.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,i,c,p;
cout << "Introduceti numarul natural n: ";
cin>>n;
for (p=n-1;p>=2;p--)
{
c=0;
for(i=2;i<p;i++)
if(p%i==0)
c++;
if(c==0)
cout<<p<<" ";
}
}
13. Se citește un număr natural nenul n. Scrie un program care să afișeze primele n pătrate perfecte.
Soluție:
include <iostream>
using namespace std;
int main()
{
int i, n, p;
cout << "Introduceti un numar natural n: ";
cin>>n;
for (i=0; i<=n-1;i++)
{
p=i*i;
cout <<p<<", ";
}
return 0;
}
15. Se citește un număr natural nenul n. Scrie un program C++, folosind instrucțiunea For, care să afișeze, în ordine crescătoare și pe rânduri diferite, toți divizorii numărului n.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,d;
cout << "Introduceti numarul natural n: ";
cin>>n;
for(d=1; d<=n; d=d+1)
if(n%d==0)
cout <<d<<", ";
return 0;
}
17. Se citește un număr întreg nenul a. Scrie un program care să afișeze toate numerele impare mai mici sau egale cu a.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a,i;
cout << "Introduceti numarul natural a: ";
cin>>a;
for(i=1; i<=a; i=i+2)
cout << i <<" ";
}
19. Se citesc 3 numere naturale a, b, c. Scrie un program care calculează cel mai mare divizor comun al celor 3 numere.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, cmmdc;
cout << "Introduceti numarul natural a: ";
cin>>a;
cout << "Introduceti numarul natural b: ";
cin>>b;
cout << "Introduceti numarul natural c: ";
cin>>c;
d=1;
while (d<=a&&d<=b&&d<=c)
{
if(a%d==0&&b%d==0&&c%d==0)
cmmdc=d;
d++;
}
cout << "Cel mai mare divizor comun este "<<cmmdc;
return 0;
}
21. Se citesc două numere naturale nenule a și b. Scrie un program C++ care afișează divizorii comuni ai celor două numere.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a,b,d;
d=1;
cout << "Introduceti numarul natural a: ";
cin>>a;
cout << "Introduceti numarul natural b: ";
cin>>b;
while (d<=a&&d<=b)
{
if (a%d==0&&b%d==0)
cout <<d<<", ";
d++;
}
return 0;
}
23. Se citesc două numere naturale nenule a și b. Scrie un program C++ care afișează toate pătratele perfecte cuprinse între numerele a și b.
Soluție:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, b, i, r;
cout << "Introduceti numarul natural a: ";
cin>>a;
cout << "Introduceti numarul natural b: ";
cin>>b;
for(i=a; i<=b; i++)
{
r=sqrt(i);
if(r*r==i)
cout <<i<<", ";
}
return 0;
}
25. Se citește un număr natural nenul a. Scrie un program C++ care afișează toate numerele perfecte mai mici sau egale cu a. Se numește număr perfect un număr care are suma divizorilor săi egală cu dublul său.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a, n, d, s;
cout << "Introduceti numarul a: ";
cin >>a;
for(n=1; n<=a; n=n+1)
{
s=0;
for(d=1; d<=n; d=d+1)
{
if(n%d==0)
s=s+d;
}
if(s==2*n)
cout <<n<<", ";
}
return 0;
}
2. Se citește un număr natural nenul n. Scrie un program C++ care afișează cel mai mare număr natural mai mic sau egal cu n care se poate scrie ca putere a lui 2.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,t;
cout << "Introduceti numarul natural n: ";
cin>>n;
t=1;
while(t<n)
t=t*2;
if (t>n)
cout<<t/2;
else
cout<<t;
}
4. Se citește un număr întreg nenul n. Scrie un program C++ care afișează câte cifre pare are numărul n. În cazul în care numărul citit nu are cifre pare, să se afișeze un mesaj corespunzător.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,p;
cout << "Introduceti un numar intreg n: ";
cin>>n;
p=0;
while(n!=0)
{
if(n%2==0)
p=p+1;
}
if (p==0)
cout << "Numarul nu are cifre pare.";
else
cout << "Numarul de cifre pare este "<<p;
}
6. Scrie un program care să calculeze suma cifrelor unui număr natural n introdus de la tastatură.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,u,s;
s=0;
cout << "Introduceti numarul n: ";
cin>>n;
while(n!=0)
{
u=n%10;
s=s+u;
n=n/10;
}
cout << "Suma cifrelor numarului n este "<<s;
return 0;
}
8. Se citește un număr natural n. Scrie un program C++, utilizând instrucțiunea While, care să afișeaze pătratele perfecte mai mici sau egale cu n.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n, i;
i=0;
cout << "Introduceti numarul natural n: ";
cin>>n;
while(i*i<=n)
{
i=i+1;
cout <<(i-1)*(i-1)<<" ";
}
}
10. Se citește un număr natural nenul n. Scrie un program C++ care să verifice dacă n este număr perfect și să afișeze un mesaj corespunzător. Se numește număr perfect un număr care are suma divizorilor săi egală cu dublul său.
Soluție:
#include <iostream>
sing namespace std;
int main()
{
int n, s, i;
s=0;
cout << "Introduceti numarul natural n: ";
cin>>n;
for(i=1; i<=n; i++)
if(n%i==0)
s=s+i;
if (s==2*n)
cout << "Numarul "<<n<<" este perfect.";
else
cout << "Numarul "<<n<<" nu este perfect.";
}
12. Se citește un număr natural nenul n. Scrie un program care să calculeze suma numerelor naturale mai mici sau egale cu n (suma lui Gauss).
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n, i, s;
s=0;
i=1;
cout << "Introduceti numarul natural n: ";
cin>>n;
do
{s=s+i;
i++;
}while(i<=n);
cout << "Suma numerelor naturale mai mici sau egale cu "<<n<<" este egala cu "<<s;
}
14. Se citește un număr natural nenul n. Scrie un program C++, folosind instrucțiunea While, care să afișeze, în ordine crescătoare și pe rânduri diferite, toți divizorii numărului n.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,d;
cout << "Introduceti un numar natural n: ";
cin>>n;
d=1;
while(d<=n)
{
if (n%d==0)
cout <<d<< endl;
d=d+1;
}
}
16. Se citește un număr întreg nenul n. Scrie un program care să determine numărul de cifre impare ale numărului n.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n, c;
c=0;
cout << "Introduceti numarul n: ";
cin>>n;
while(n!=0)
{
if(n%2==1)
c=c+1;
n=n/10;
}
cout << "Numarul de cifre impare este "<<c;
return 0;
}
18. Se citește un număr natural n. Scrie un program C++, utilizând instrucțiunea For, care afișează toți divizorii săi naturali în ordine crescătoare.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,d;
cout << "Introduceti numarul natural n: ";
cin>>n;
for(d=1; d<=n; d=d+1)
if(n%d==0)
cout <<d<<", ";
return 0;
}
20. Se citesc două numere naturale nenule a și b. Scrie un program C++ care afișează cel mai mare divizor comun al lor.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a, b, d, cmmdc;
cout << "Introduceti numarul natural a: ";
cin>>a;
cout << "Introduceti numarul natural b: ";
cin>>b;
d=1;
while((d<=a)||(d<=b))
{
d=d+1;
if((a%d==0)&&(b%d==0))
cmmdc=d;
}
cout<<"c.m.m.d.c. al numerelor "<<a<<" si "<<b<<" este "<<cmmdc<<".";
}
22. Se citește un număr natural n. Scrie un program C++ care verifică dacă numărul este prim sau nu și afișează un mesaj corespunzător.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int n,i,c;
c=0;
cout <<"Introduceti numarul natural n: ";
cin>>n;
for (i=2; i<n; i++)
if(n%i==0)
c++;
if(c==0)
cout << "Numarul este prim." ;
else
cout << "Numarul nu este prim." ;
}
24. Se citesc două numere naturale nenule a și b. Scrie un program C++ care afișează toate numerele impare cuprinse între numerele a și b.
Soluție:
#include <iostream>
using namespace std;
int main()
{
int a, b, i;
cout << "Introduceti numarul natural a: ";
cin>>a;
cout << "Introduceti numarul natural b: ";
cin>>b;
cout <<"Numerele impare sunt: ";
if(a%2==0)
a++;
for(i=a; i<=b; i=i+2)
cout<<i<<", ";
return 0;
}