Sunteți pe pagina 1din 50

Pentru urmatoarele problem datele de intrare sunt naturale de maxim 9 cifre (daca cerinta nu precizeaza altfel)

1. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza suma numerelor din sir.
2. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza produsul numerelor din sir.
3. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cel mai mare numar din sir.
4. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cel mai mic numar din sir.
5. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cate numere din sir sunt pozitive.
6. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza produsul numerelor impare din sir.
7. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cel mai mare numar din sir si de cate ori apare el in sir.
8. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza media aritmetica a numerelor din sir
9. Se citesc 2 nr k si n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza nr din sir care au k cifre.
10. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza numerele ce au cel putin o cifra de 0. Daca nu exista astfel de numere se afiseaza “nu exista”
11. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza media aritmetica a numerelor pozitive din sir.
12. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza lungimea celei mai lungi secvente de numere pozitive din sir.
13. Se citeste un numar n (1<=n<=50).Sa se scrie un program care afiseaza sirul :
1, 2,2, 3,3,3, 4,4,4,4, 5,5,5,5,5 ,………, n,n,n,n,…..,n.
14. Se citeste un numar n (1<=n<=50).Sa se scrie un program care afiseaza sirul :
1, 1,2, 1,2,3, 1,2,3,4, 1,2,3,4,5 ,………, 1,2,3,4,…..,n.
15. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza numerele palindrom din sir.
16. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cate numere palindrom sunt in sir.
17. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza numerele perfecte din sir.
18. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza numerele prime din sir.
19. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza numarul facut din cea mai mare cifra a fiecarui numar prim din sir.
20. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza maximul inverselor numerelor din sir.
21. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza “cifra de control “ a fiecarui numar din sir (“cifra de control a unui numar “ este obtinuta astfel: se face
suma cifrelor, apoi suma cifrelor sumei obtinute s.a.m.d pana cand se obtine un numar<10).
22. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza minimul “cifrelor de control “ a numerelor din sir (“cifra de control a unui numar “ este obtinuta astfel: se
face suma cifrelor, apoi suma cifrelor sumei obtinute s.a.m.d pana cand se obtine un numar<10).
23. Se citeste un numar n (1<=n<=50) , un numar intreg x si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie
un program care afiseaza de cate ori apare x in sir.
24. Se citeste un numar n (1<=n<=50) , 2 numere intregi de maxim 9 cifre a si b si apoi un sir de n numere intregi de
maxim 9 cifre.Sa se scrie un program care afiseaza media aritmetica a numerelor din sir ce apartin intervalului
[a,b];
25. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza, pentru fiecare numar suma divizorilor sai.
26. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza, pentru fiecare numar, cel mai mic divizor prim al lui.
27. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza suma tuturor divizorilor comuni ai tuturor numerelor din sir.
28. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza, pentru fiecare numar x din sir cel mai apropiat numar de x , numit y cu proprietatea ca x si y sunt prime
intre ele.
29. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cmmdc-ul tuturor numerelor din sir.
30. Se citeste un numar n (1<=n<=50).Sa se scrie un program care afiseaza numerele prime mai mici sau egale cu n.
31. Se citeste un numar n (1<=n<=50).Sa se scrie un program care afiseaza cel mai mare numar prim mai mic sau
egal cu n.
32. Se citeste un numar n (1<=n<=50) si.Sa se scrie un program care afiseaza cel mai mic numar prim mai mare sau
egal cu n.
33. Sa se gaseasca numerele de 2 cifre care au proprietatea: rasturnatul patratului numarului este egal cu patratul
numarului rasturnat. (132=169, 312=961);
34. Se citeste un numar n (1<=n<=50) si apoi un sir de n numere intregi de maxim 9 cifre.Sa se scrie un program care
afiseaza cel mai mare numar din sir care e prim si mai mic sau egal cu n.
35. Se citesc 2 numere intregi de maxim 9 cifre n si b. Sa se verifice daca n poate fi considerat scris in baza b (are
toate cifrele mai mici ca b).
36. Se citesc 2 numere intregi de maxim 9 cifre a si b.Sa se afiseze cifrele lor comune.
37. Se citeste un numar n (1<=n<=7) .Sa se scrie un program care afiseaza n! (n!=1*2*3*4*5*…..*n)
38. Se citeste un numar n (1<=n<=50).Sa se afiseaza 2 n.
39. Se citeste un numar n (1<=n<=50).Sa se verifice daca are cifre distincte.
40. Sa se afiseze toate numerele de 3 cifre care au toate cifrele distincte.
41. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
cate numere au fost citite.

12345670

-1 -5 -40 0
3

#include <iostream>
using namespace std;
int main()
{
int x, contor;
while ( (cin >> x) && x!=0 )
contor++;
cout << contor;
return 0;
}

42. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
suma numerelor din sir.

12345670

28

1 -1 -5 -40 0

-45

#include <iostream>

using namespace std;

int main()

int x, Suma=0;

while ( (cin >> x) && x!=0 )

Suma = Suma + x;

cout << Suma;

return 0;

43. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
produsul numerelor din sir.

12345670

5040

-1 -5 -40 0

-200

#include <iostream>

using namespace std;

int main()
{

int x, Produs=1;

while ( (cin >> x) && x!=0 )

Produs = Produs * x;

cout << Produs;

return 0;

Ver 2

#include <iostream>
using namespace std;
int main()
{
  int x, p=1;
   cin >> x;
   while (x!=0)
   {
     p=p*x;
     cin >> x;
   }
   cout << p;
   return 0;
}

44. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
cel mai mare numar din sir.

-1 -5 -40 0

-1

12345670

7
#include <iostream>

using namespace std;

int main()

int x, y, Nr_max;

cin >> x;

Nr_max = x;

while ( (cin >> y) && y!=0 )

if ( y > Nr_max)

Nr_max = y;

cout << Nr_max;

return 0;

45. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
cel mai mic numar din sir .

-1 -5 -40 0

-40

112345670

#include <iostream>

using namespace std;

int main()

int x, y, Nr_min;

cin >> x;

Nr_min = x;

while ( (cin >> y) && y!=0 )

if ( y < Nr_min)
Nr_min = y;

cout << Nr_min;

return 0;

46. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
inversul celui mai mic numar din sir.

1 4 -23 32 -45 0

-54

#include <iostream>

using namespace std;

int main()

int x, y, Nr_min, cNr_min, cif, Ogl_Nr_min=0;

cin >> x;

Nr_min = x;

while ( (cin >> y) && y!=0 )

if ( y < Nr_min)

Nr_min = y;

while (Nr_min!=0)

cif = Nr_min%10;

Ogl_Nr_min = Ogl_Nr_min * 10 + Nr_min%10;

Nr_min = Nr_min/10;

cout << Ogl_Nr_min;

return 0;

}
47. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
toate perechile de numere alaturate din sir ( de pe pozitii consecutive) care sunt ambele impare.

-33 55 77 21 8 414 79 91 0

-33 55

55 77

77 21

79 91

#include <iostream>

using namespace std;

int main()

int x, y;

cin >> x;

while (cin >> y && y!=0)

if (x%2!=0 && y%2!=0)

cout << x << " " << y << endl;

x = y;

return 0;

48. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
numerele prime din sir.
-33 55 77 21 8 414 79 91 -5 81 7 0
1 33 3 11 Nr divizori NATURALI pt -33 este 4
1 55 5 11 Nr divizori NATURALI pt 55 este 4
1 77 7 11 Nr divizori NATURALI pt 77 este 4
1 21 3 7 Nr divizori NATURALI pt 21 este 4
1 8 2 4 Nr divizori NATURALI pt 8 este 4
1 414 2 207 3 138 6 69 9 46 18 23 Nr divizori NATURALI pt 414 este 12
1 79 Nr divizori NATURALI pt 79 este 2
Nr 79 este prim
1 91 7 13 Nr divizori NATURALI pt 91 este 4
1 5 Nr divizori NATURALI pt -5 este 2
Nr -5 este prim
1 81 3 27 9 Nr divizori NATURALI pt 81 este 5
1 7 Nr divizori NATURALI pt 7 este 2
Nr 7 este prim

#include <iostream>
using namespace std;
int main()
{
int x, cnt=0, div, d;
while (cin >> x && x!=0)
{
cnt = 0;
for (d = 1; d*d <=abs(x); d++)
{
if (x%d==0)
{
//cout << d << " ";
cnt = cnt + 1;
if (d*d <abs(x))
{
div = abs(x)/d;
cnt = cnt + 1;
//cout << div << " ";
}
}
}
//cout << "Nr divizori NATURALI pt " << x << " este " << cnt << endl;
if (cnt==2)
{
cout << " Nr " << x << " este prim" << endl;
}

}
return 0;
}

-33 55 77 21 8 414 79 91 -5 81 7 0
Nr 79 este prim
Nr -5 este prim
Nr 7 este prim
49. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir) si in numar
x.Sa se afiseze toate numelere din sir care sunt mai mici sau egale cu x.

In: 10
-33 55 77 21 8 414 79 91 -5 81 7 0
Out: -33 8 -5 7

#include <iostream>
using namespace std;
int main()
{
int x, y;
cin >> x;
while (cin >> y && y!=0)
{
if (y <=x)
cout << y << " ";
}
return 0;
}

50. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
media aritmetica a numerelor cuprinse in intervalul [a,b] (a si b sunt 2 numere intregi de maxim 9 cifre)

-33 33

7 -12 21 36 89 -23 -33 33 57 0

7 -12 21 -23 -33 33 -7 6 -1.16667 -1.17

-33 33

7 -21 21 31 89 -23 -33 33 57 0

7 -21 21 31 -23 -33 33 15 7 2.14286

#include <iostream>

#include <iomanip>

using namespace std;

int main()

int a, b, x, k=0, Suma =0;

double ma = 0;
cin >> a >> b;

while (cin >> x && x!=0)

if (x >=a && x <=b)

Suma = Suma + x;

k = k + 1;

cout << x << " ";

cout << Suma << " " << k << " ";

ma = (double)Suma/k;

cout << ma << " ";

cout << fixed << setprecision(2) << ma;

return 0;

Punem comment la cateva afisari

-33 33

7 -21 21 31 89 -23 -33 33 57 0

2.14286

#include <iostream>

#include <iomanip>

using namespace std;

int main()

int a, b, x, k=0, Suma =0;

double ma = 0;
cin >> a >> b;

while (cin >> x && x!=0)

if (x >=a && x <=b)

Suma = Suma + x;

k = k + 1;

//cout << x << " ";

//cout << Suma << " " << k << " ";

ma = (double)Suma/k;

cout << ma << " ";

//cout << fixed << setprecision(2) << ma;

return 0;

51. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze,
pentru fiecare numar din sir cel mai apropiat numar par mai mic decat numarul respectiv.

7 -21 21 31 89 -23 -33 33 57 -34 34 0

6 -22 20 30 88 -24 -34 32 56 -36 32

#include <iostream>

using namespace std;

int main()

int x;

while (cin >> x && x!=0)

if (x%2==0)
x = x - 2;

else

x = x - 1;

cout << x << " ";

return 0;

52. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
toate numerele care au toate cifrele pare.

-24 46 54 62 89 449 284 -842 0

-24 46 62 284 -842

#include <iostream>

using namespace std;

int main()

int x, cx, cif;

bool toate_pare;

while (cin >> x && x!=0)

cx = x;

toate_pare = true;

do

cif = cx%10;

if (cif%2!=0)

toate_pare = false;

break;
}

cx = cx/10;

while (cx!=0 && toate_pare == true );

if (toate_pare == true)

cout << x << " ";

return 0;

53. Se citeste un sir de numere intregi de maxim 9 cifre pana la intalnirea lui 0 ( 0 nu face parte din sir).Sa se afiseze
numerele din sir care apartin sirului lui Fibonacci.

Șirul lui Fibonacci


Numerele Fibonacci sunt numere naturale care fac parte din următorul șir, în care fiecare număr este
egal cu suma celor două de dinainte:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …

7 2 1 3 1 5 6 2 7 3 4 5 8 21 13 43 21 34 55 59 89 90 91 144 0

IN: 7 2 1 3 1 5 6 2 7 3 4 5 8 21 13 43 21 34 55 59 89 90 91 144 0

OUT: 1 1 2 3 5 8 13 21 34 55 89 144

#include <iostream>

using namespace std;

int main()

int x, y, z;

while (cin >> x )

if (x==1)

cout << x << " ";

break;
}

while (cin >> y)

if (y==1)

cout << y << " ";

break;

while (cin >> z && z!=0)

if (x + y == z)

cout << z << " ";

x = y;

y = z;

return 0;

54. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cifrele sale.

12345678

12345678

-87654321
87654321

#include <iostream>
using namespace std;
int main()
{
int n, cif, Ogl=0;
cin >> n;
n = abs(n);
while (n!=0)
{
cif = n%10;
Ogl = Ogl*10 + cif;
n = n/10;
}
while (Ogl!=0)
{
cif = Ogl%10;
cout << cif << " ";
Ogl = Ogl/10;
}
return 0;
}

55. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze prima cifra a lui n.

12345678

87654321

-87654321

#include <iostream>

using namespace std;

int main()

int n;

cin >> n;

n = abs(n);

while (n>9)

n = n/10;
}

cout << n;

return 0;

56. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze suma cifrelor lui n.

87654321

36

-87654321

36

#include <iostream>

using namespace std;

int main()

int n, cif, Suma=0;

cin >> n;

n = abs(n);

while (n!=0)

cif = n%10;

Suma = Suma + cif;

n = n/10;

cout << Suma;

return 0;

}
57. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze produsul cifrelor lui n.

87654321

40320 (este 8 factorial notat 8!)

-87654321

40320

#include <iostream>

using namespace std;

int main()

int n, cif, Produs=1;

cin >> n;

n = abs(n);

while (n!=0)

cif = n%10;

Produs = Produs * cif;

n = n/10;

cout << Produs;

return 0;

58. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cea mai mare cifra a lui n.

-12345678

-13745757

#include <iostream>

using namespace std;


int main()

int n, cif, cif_max=-1;

cin >> n;

n = abs(n);

while (n!=0)

cif = n%10;

if (cif > cif_max)

cif_max = cif;

n = n/10;

cout << cif_max;

return 0;

59. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cea mai mica cifra a lui n.

-13745757

#include <iostream>

using namespace std;

int main()

int n, cif, cif_min=10;

cin >> n;

n = abs(n);

while (n!=0)

cif = n%10;
if (cif < cif_min)

cif_min = cif;

n = n/10;

cout << cif_min;

return 0;

60. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cate cifre are n.

-13745757

#include <iostream>

using namespace std;

int main()

int n, nr_cifre=0;

cin >> n;

n = abs(n);

while (n!=0)

nr_cifre = nr_cifre + 1;

n = n/10;

cout << nr_cifre;

return 0;

}
61. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cifrele pare ale lui n.

-24518740

04842

#include <iostream>

using namespace std;

int main()

int n, cif;

cin >> n;

n = abs(n);

while (n!=0)

cif = n%10;

if (cif%2==0)

cout << cif << " ";

n = n/10;

return 0;

62. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze media aritmetica a cifrelor lui n.

-12345678

4.5

#include <iostream>

using namespace std;

int main()

int n, cif, Suma=0, nr=0;


double ma;

cin >> n;

n = abs(n);

while (n!=0)

cif = n%10;

Suma = Suma + cif;

nr = nr + 1;

n = n/10;

ma = (double)Suma/nr;

cout << ma;

return 0;

63. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze inversul lui n.

-12345678
-87654321

#include <iostream>
using namespace std;
int main()
{
int n, cif, Ogl=0;
cin >> n;
while (n!=0)
{
cif = n%10;
Ogl = Ogl*10 + cif;
n = n/10;
}
cout << Ogl;
return 0;
}

64. Se citeste un numar intreg n de maxim 8 cifre.Sa se verifice daca n este palindrom ( un numar n este palindrome
daca este egal cu inversul sau.
-2020

-2020 nu este palindrom

-2002

-2002 este palindrom

#include <iostream>

using namespace std;

int main()

int n, cn, cif, Ogl=0;

cin >> n;

cn = n;

while (cn!=0)

cif = cn%10;

Ogl = Ogl*10 + cif;

cn = cn/10;

if (n==Ogl)

cout << n << " este palindrom";

else

cout << n << " nu este palindrom";

return 0;

65. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze un numar format din cifrele pare ale lui n.

-12345678

-2468
#include <iostream>

using namespace std;

int main()

int n, cn, cif, Rec_nr=0, p=1;

cin >> n;

cn = n;

while (cn!=0)

cif = cn%10;

if (cif%2==0)

Rec_nr = Rec_nr + p*cif;

p = p*10;

cn = cn/10;

cout << Rec_nr;

return 0;

66. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cifrele lui n care sunt distincte.

-23409987

0234789

#include <iostream>

using namespace std;

int main()

int n, cn, cif, i=0;


cin >> n;

n = abs(n);

while (i<=9)

cn = n;

while (cn!=0)

cif = cn%10;

if (cif==i)

cout << i << " ";

break;

cn = cn/10;

i = i + 1;

return 0;

67. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cifrele lui n in ordine crescatoare. ( daca o cifra apare de
mai multe ori, ea va fi afisata o singura data.)

-23409987

0234789

#include <iostream>

using namespace std;

int main()

int n, cn, cif, i=0;


cin >> n;

n = abs(n);

while (i<=9)

cn = n;

while (cn!=0)

cif = cn%10;

if (cif==i)

cout << i << " ";

break;

cn = cn/10;

i = i + 1;

return 0;

Sa se afiseze cifrele lui n in ordine descrescatoare.

-23409987
9874320

#include <iostream>
using namespace std;
int main()
{
int n, cn, cif, i=9;
cin >> n;
n = abs(n);
while (i>=0)
{
cn = n;
while (cn!=0)
{
cif = cn%10;
if (cif==i)
{
cout << i << " ";
break;
}
cn = cn/10;
}
i = i - 1;
}
return 0;
}
68. Se citeste un numar intreg n de maxim 8 cifre.n are toate cifrele distincte.Sa se afiseze cel mai mare numar format
din cifrele lui n.

23409187

01234789

98743210

#include <iostream>

using namespace std;

int main()

int n, cn, cif, i=0, p=1, Rec_nr=0;

cin >> n;

n = abs(n);

while (i<=9)

cn = n;

while (cn!=0)

cif = cn%10;

if (cif==i)

cout << i << " ";

Rec_nr = Rec_nr + p*i;


p = p*10;

break;

cn = cn/10;

i = i + 1;

cout << endl << Rec_nr;

return 0;

69. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze cel mai mare numar format din cifrele lui n.

-77889991

17788999

99988771

#include <iostream>

using namespace std;

int main()

int n, cn, cif, i=0, p=1, Rec_nr=0;

cin >> n;

n = abs(n);

while (i<=9)

cn = n;

while (cn!=0)

cif = cn%10;
if (cif==i)

cout << i << " ";

Rec_nr = Rec_nr + p*i;

p = p*10;

cn = cn/10;

i = i + 1;

cout << endl << Rec_nr;

return 0;

70. Se citeste un numar intreg n de maxim 8 cifre si o cifra x.Sa se afiseze de cate ori apare cifra x in scrierea lui n.

-77889991 9

-77889991 0

#include <iostream>

using namespace std;

int main()

int n, cif, x, cnt_cif=0;

cin >> n >> x;

n = abs(n);

while (n!=0)

cif = n%10;
if (cif==x)

cnt_cif = cnt_cif + 1;

n = n/10;

cout << cnt_cif ;

return 0;

71. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze toate numerele obtinute prin permutarea circulara la
stanga numarului n( de ex. Pt n=1234 se va afisa: 1234, 4123, 3412, 2341).

!!! GRESIT: EXEMPLUL DIN PARANTEZE DEMONSTREAZA O PERMUTARE LA DREAPTA, DEOARECE BLOCUL DE 3
NUMERE SE MUTA INSPRE DREAPTA CU O POZITIE

CODUL DE MAI JOS REALIZEAZA PERMUTAREA LA STANGA, CUM SE SOLICITA IN ENUNT:

IN: 1234
OUT : 1234
2341
3412
4123

IN: -1234
OUT : -1234
-2341
-3412
-4123

#include <iostream>

using namespace std;

int main() // rezolvare in care apare si un for

int n, cn, nr_cif=0, pr_cif, p=1;


cin >> n;

cn = n;

while (cn!=0)

nr_cif = nr_cif + 1;

cn = cn/10;

cn = n;

while (abs(cn)>9)

p = p*10;

cn = cn/10;

cout << n << endl;

for (int i=1; i< nr_cif; i++)

cn = n;

while (abs(cn)>9) // peste tot unde apare abs(cn) este pentru a putea prelucra si numere intregi negative

cn = cn/10;

pr_cif = cn;

n = n%p*10 + pr_cif; // Am facut permutare la stanga;

cout << n << endl;

return 0;

}
IN: 1234
OUT : 1234
2341
3412
4123

IN: -1234
OUT : -1234
-2341
-3412
-4123

#include <iostream>

using namespace std;

int main() // rezolvare in care for e inlocuit cu while

int n, cn, nr_cif=0, pr_cif, p=1, i=1;

cin >> n;

cn = n;

while (cn!=0)

nr_cif = nr_cif + 1;

cn = cn/10;

cn = n;

while (abs(cn)>9) // // peste tot unde apare abs(cn) este pentru a putea prelucra si numere intregi negative

p = p*10;

cn = cn/10;

cout << n << endl;

while (i< nr_cif)

{
cn = n;

while (abs(cn)>9)

cn = cn/10;

pr_cif = cn;

n = n%p*10 + pr_cif; // Am facut permutare la stanga;

cout << n << endl;

i = i + 1;

return 0;

72. Se citeste un numar intreg n de maxim 8 cifre.Sa se afiseze numerele obtinute prin permutarea circulara pe
dreapta a cifrelor lui n.

permutare circulara la dreapta

IN: 1234

OUT : 1234

4123

3412

2341

IN: -1234

OUT : -1234

-4123

-3412

-2341
#include <iostream>

using namespace std;

int main()

int n, cn, nr_cif=0, cif, p=1, i=1;

cin >> n;

cn = n;

while (cn!=0)

nr_cif = nr_cif + 1;

cn = cn/10;

cn = n;

while (abs(cn)>9) // peste tot unde apare abs(cn) este pentru a putea prelucra si numere intregi negative

p = p*10;

cn = cn/10;

cout << n << endl;

while (i < nr_cif)

cif = n%10;

n = cif*p + n/10; // Am facut permutare la dreapta;

cout << n << endl;

i = i + 1;

return 0;

}
73. Se citeste un numar intreg n de maxim 8 cifre.Sa se verifice daca este extra prim.Un numar este extra prim daca el
si numerele obtinute prin permutarea circulare la dreapta a cifrelor lui sunt prime.

IN: -1234
OUT:
-4123
1 4123 7 589 19 217 31 133

-1234 nu este numar extra prim

IN: 113
OUT:
311
1 311
131
1 131
113
1 113

113 este numar extra prim

IN: -113

OUT:

-311

1 311

-131

1 131

-113

1 113

-113 este numar extra prim

#include <iostream>

using namespace std;

int main()

int n, cn, nr_cif=0, cif, p=1, i=1, cnt;

bool extra_prim = true;


cin >> n;

cn = n;

while (cn!=0)

nr_cif = nr_cif + 1;

cn = cn/10;

cn = n;

while (abs(cn)>9) // peste tot unde apare abs(cn) este pentru a putea prelucra si numere intregi negative

p = p*10;

cn = cn/10;

cn = n;

while (i <= nr_cif)

cif = n%10;

n = cif*p + n/10; // Am facut permutare la dreapta;

cout << n << endl;

cnt = 0;

for (int d=1; d*d <= abs(n); d++)

if (n%d==0)

cnt = cnt + 1;

cout << d << " ";

if (d*d < abs(n))

cout << abs(n)/d << " ";


cnt = cnt + 1;

cout << endl;

if (cnt!=2)

extra_prim = false;

break;

i = i + 1;

if (extra_prim == true)

cout << endl << cn << " este numar extra prim";

else

cout << endl << cn << " nu este numar extra prim";

return 0;

74. Se citeste un numar intreg n de maxim 8 cifre.Sa se verifice daca este superprim. Un numar este superprim daca
atat el cat si inversul sau sunt prime.

IN: -17

OUT:

-17

1 17

-71

1 71

-17 este numar super prim


IN: -73

OUT:

-73

1 73

-37

1 37

-73 este numar super prim

IN: 113

OUT:

113

1 113

311

1 311

113 este numar super prim

IN: -513

OUT:

-513

1 513 3 171 9 57 19 27

-315

1 315 3 105 5 63 7 45 9 35 15 21

-513 nu este numar super prim

#include <iostream>

using namespace std;

int main()

int n, cn, cif, Ogl=0, cnt;

bool super_prim = true;


cin >> n;

cn = n;

while (cn!=0)

cif = cn%10;

Ogl = Ogl*10 + cif;

cn = cn/10;

cout << n << endl;

cnt = 0;

for (int d=1; d*d <= abs(n); d++)

if (n%d==0)

cnt = cnt + 1;

cout << d << " ";

if (d*d < abs(n))

cout << abs(n)/d << " ";

cnt = cnt + 1;

cout << endl;

if (cnt!=2)

super_prim = false;

}
cout << Ogl << endl;

cnt = 0;

for (int d=1; d*d <= abs(Ogl); d++)

if (Ogl%d==0)

cnt = cnt + 1;

cout << d << " ";

if (d*d < abs(Ogl))

cout << abs(Ogl)/d << " ";

cnt = cnt + 1;

cout << endl;

if (cnt!=2)

super_prim = false;

if (super_prim == true)

cout << endl << n << " este numar super prim";

else

cout << endl << n << " nu este numar super prim";

return 0;

}
75. Se citeste un numar intreg n de maxim 8 cifre.Sa se verifice daca n este format numai din cifre distincte.

IN: -23345778

OUT:

3 apare de 2 ori

7 apare de 2 ori

-23345778 nu are cifre distincte

IN: -12345678

OUT:

-12345678 are cifre distinct

#include <iostream>

using namespace std;

int main()

int n, cn, cif, i=0;

bool cifre_dist = true;

cin >> n;

while (i<=9)

cn = abs(n);

int cnt = 0;

while (cn!=0)

cif = cn%10;

if (cif==i)

cnt = cnt + 1;

}
cn = cn/10;

if (cnt>1)

cifre_dist = false;

cout << i << " apare de " << cnt << " ori" << endl;

i = i + 1;

if (cifre_dist == true)

cout << endl << n << " are cifre distincte";

else

cout << endl << n << " nu are cifre distincte";

return 0;

76. Se citeste un numar intreg n de maxim 8 cifre. si 2 cifre a si b.Sa se afiseze media aritmetica a cifrelor lui n care
apartin intervalului [a,b].

IN : -23445889

38

OUT:

Suma cifrelor din interval este 32 iar contorul 6

Media aritmetica este 5.33333

IN : -23445889

OUT:

83

Suma cifrelor din interval este 32 iar contorul 6

Media aritmetica este 5.33333


#include <iostream>

using namespace std;

int main()

int n, cn, a, b, aux, cif, cnt=0, Suma=0;

double ma;

cin >> n >> a >> b;

cn = abs(n);

if (b<a) // trateaza cazul in care a si b nu sunt in ordine crescatoare

aux = a;

a = b;

b = aux;

while (cn!=0)

cif = cn%10;

if (cif>=a && cif<=b)

Suma = Suma + cif;

cnt = cnt + 1;

cn = cn/10;

cout << "Suma cifrelor din interval este " << Suma << " iar contorul " << cnt << endl;

ma = (double) Suma/cnt;

cout << "Media aritmetica este " << ma;

return 0;

}
77. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze toti divizorii lui n.
78. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze suma divizorilor lui n.
79. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze produsul divizorilor lui n.
80. Se citeste un numar intreg n de maxim 4 cifre .Sa se afiseze divizorii in ordine descrescatoare.
81. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze cel mai mare divizor prim a lui n.
82. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze cel mai mic divizor prim a lui n.
83. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze diferenta dintre cel mai mare si cel mai mic divizor
propriu.Daca un numar nu are divizori proprii se va afisa 0.
84. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze puterea lui 2 din descompunerea lui n in factori primi.
85. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze toti divizorii primi ai lui n.
86. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze descompunerea lui n in factori primi.
87. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze suma puterilor din descompunerea lui n in factori primi.
88. Se citeste un numar intreg n de maxim 4 cifre.Sa se verifice daca n este prim.
89. Se citeste un numar intreg n de maxim 4 cifre.Sa se verifice daca n este perfect ( suma divizorilor lui n este egala
cun, dar nu se aduna la suma divizorilor numarul n).
90. Se citeste un numar natural n de maxim 2 cifre.Sa se scrie un program care afiseaza puterea lui 10 din
descompunerea in factori primi a lui n!.(n!=1*2*3*…*n)
91. Se citesc 2 numere intregi de maxim 9 cifre m si n de maxim 4 cifre.Sa se afiseze divizorii comuni.
92. Se citesc 2 numere intregi de maxim 9 cifre m si n de maxim 4 cifre.Sa se afiseze divizorii primi comuni.
93. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze toti divizorii pari.
94. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze media aritmetica a divizorilori primi a lui n.
95. Se citesc 2 numere intregi de maxim 9 cifre m si n de maxim 4 cifre.Sa se afiseze cmmdc(n,m).
96. Se citesc 2 numere intregi de maxim 9 cifre m si n de maxim 4 cifre.Sa se afiseze cmmmc(n,m)
97. Se citesc 2 numere intregi de maxim 9 cifre m si n de maxim 4 cifre.Sa se verifice daca sunt prime intre ele.
98. Se citesc 2 numere intregi de maxim 9 cifre m si n de maxim 4 cifre.Sa se afiseze toate numerele naturale x cu
proprietatea ca x<=n si x si m sunt prime intre ele.
99. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze scrierea lui n in baza 2.
100. Se citeste un numar intreg n de maxim 4 cifre si un numar natural a.Sa se afiseze scrierea lui n in baza a.
101. Se citeste un numar intreg n scris in baza 2.Sa se afiseze n in baza 10.
102. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze primii n termini ai sirului lui Fibonacci.
103. Se citeste un numar intreg n de maxim 4 cifre.Sa se verifice daca n apartine sirului lui Fibonacci.
104. Se citeste un numar intreg n de maxim 4 cifre.Sa se afiseze cel mai apropiat de n termen al sirului lui
Fibonacci.

1.#include <iostream>
using namespace std;
int main()
{
   int n,x,i,s=0;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       s=s+x;
   }
   cout<<s;
   return 0;
}
2.#include <iostream>
using namespace std;
int main()
{
   int n,x,i,p=1;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       p=p*x;
   }
   cout<<p;
   return 0;
}
3.#include <iostream>
#include <climits>
using namespace std;
int main()
{
   int n,x,i,maxim=INT_MIN;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       if(x>maxim)
       {
           maxim=x;
       }
   }
   cout<<maxim;
   return 0;
}
4.#include <iostream>
#include <climits>
using namespace std;
int main()
{
   int n,x,i,minim=INT_MAX;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       if(x<minim)
       {
           minim=x;
       }
   }
   cout<<minim;
   return 0;
}
5.#include <iostream>
using namespace std;
int main()
{
   int n,x,i,nrpoz=0;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       if(x>=0)
       {
           nrpoz++;
       }
   }
   cout<<nrpoz;
   return 0;
}
6.#include <iostream>
using namespace std;
int main()
{
   int n,x,i,pimp=1;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       if(x%2!=0)
       {
           pimp=pimp*x;
       }
   }
   cout<<pimp;
   return 0;
}
7.#include <iostream>
#include <climits>
using namespace std;
int main()
{
   int n,x,i,maxim=INT_MIN,k=0;
   cin>>n;
   for(i=1; i<=n; i++)
   {
       cin>>x;
       if(x>maxim)
       {
           maxim=x;
           k=1;
       }
       else if(x==maxim)
       {
           k++;
       }
   }
   cout<<k;
   return 0;
}
8.#include <iostream>
using namespace std;
int main()
{
   int n,x,k=0;
   double m=0;
   cin>>n;
   for(int i=1; i<=n; i++)
   {
       cin>>x;
       m=m+x;
       k++;
   }
   m=m/k;
   cout<<m;
   return 0;
}
9.#include <iostream>
using namespace std;
int main()
{
   int n,x,k=0;
   double m=0;
   cin>>n;
   for(int i=1; i<=n; i++)
   {
       cin>>x;
       if(x>=0)
       {
           m=m+x;
           k++;
       }
   }
   m=m/k;
   cout<<m;
   return 0;
}

Se citeste un sir de numere intregi pana la intalnirea cifrei 0. Sa se afiseze media


aritmetica a numerelor pozitive / prime / perfecte din sir.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
      int  x, numarPrime = 0, sumaPrime = 0;
      while(cin>>x && x!=0){
       // verificam daca x este prim
       int OK = 1;
       if(x % 2 == 0 or x < 3) { // singurul numar prim divizibil cu 2 si mai mic ca 3 este numarul
2
           OK = (x == 2); // OK ia valoarea 1 daca x este egal cu 2, respectiv 0 in caz contrar
       }
       else {
           // pentru a determina eficient daca un numar este prim, este de ajuns sa mergem de
la 3 pana
           // la radical din numar, din 2 in 2
           int d = 3, radical = sqrt(x);
           while(d <= radical and OK == 1) {
               if(x % d == 0) {
                   OK = 0; // x nu este prim
               }
               else {
                   d += 2; // incrementam d cu 2 unitati
               }
           }
       }
       if(OK == 1) { // x este prim
           numarPrime++;
           sumaPrime += x;
       }
   }
   cout <<(double) sumaPrime / numarPrime;
   return 0;
}
// am pus rezultatul precis

73. Se citeste un numar intreg n de maxim 8 cifre.Sa se verifice daca este extra prim.Un numar este extra prim daca
el si numerele obtinute prin permutarea circulare la dreapta a cifrelor lui sunt prime.

Exemplu de nr extra prim este 113

#include<iostream>
using namespace std;

int f(int n)
{ int s=0,d=2;
while(n>1)
if(n%d==0) { s++;
n=n/d;
}
else d++;
return s;
}

int main()
{ int n, x,y,z;
cin>>n;
if(n<10) if(f(n)==1) cout<<"da";
else cout<<"nu";
else if(n<100) if(f(n)==1 && f(n%10*10+n/10)==1) cout<<"da";
else cout<<"nu";
else
{ x=n/100;
y=n/10%10;
z=n%10;
if(f(n)==1 && f(x*100+z*10+y)==1 && f(y*100+x*10+z)==1 &&
f(y*100+z*10+x)==1 && f(z*100+x*10+y)==1 && f(z*100+y*10+x)==1)
cout<<"da";
else cout<<"nu";
}
return 0;
}

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