Sunteți pe pagina 1din 7

PROBLEME PROPUSE PENTRU TOATE TIPURILE DE CICLURI (REZOLVARE C/C++)

Profesor: Ila Luminia

Elevi: Dulgheriu Iuliana ; Huanu Eusebiu ; Maftei Sorin ; Mihai Eduard ; Urzic Bianca

6. Dou numere naturale a i b se numesc "gemene"dac sunt prime i diferena lor n modul este 2. S se afieze perechile de numere "gemene" care se pot forma pe mulimea numerelor naturale mai mici sau egale cu n, unde valoarea lui n se citete de la tastatur. Se cere un algoritm eficient de rezolvare.

Rezolvare:
# include <iostream> using namespace std; int main ( ) { int i, k, n, nr, v; cin>>n; for (i=1; i <= 2, i++) { nr=0; for ( k=2; k <=i/2; k++) if ( i%k ==0) { nr=1; break; } v= i+2 if (nr==0) for ( k=2 ; k <= v/2; k++) { if ( v%k ==0) { nr=1; break; } if ( nr==0) cout <<i<<"u"<<v; } return 0; }

16. Realizai un algoritm care afieaz pe ecran toate numerele pare alctuite din exact dou cifre. Respectivele valori vor fi scrise pe mai multe linii de ecran, cte cinci pe fiecare linie, separate prin cte un spaiu. Rezolvare:
# include <iostream> using namespace std; int main ( ) { int i; for ( i=10; i <= 98, i=i+10) { cout << i<<"u"<< i+2<< "u"<< i+4<<"u"<< i+6<< "u"<< i+8; cout <<endl; } return 0; }

Rezolvare:

26. Se citesc de la tastatur dou numere naturale a i b unde a conine cel mult dou cifre, iar b este strict mai mic dect numarul de cifre a lui a. Scriei un algoritm care nlocuiete cu 0 ultimele b cifre ale numrului a i afieaz pe ecran valoarea astfel obinut.

# include <iostream> using namespace std; int main ( ) { long double a; int b, i, aux, nr, p; do { cin >>a; } while (a <=999999999); aux=a while (aux!=0) { aux= aux/10; nr++ }} do { cin >>b; } while (b<nr); for ( i= 1; i <=b; i++) { p= p*10; } a=a/p*p; cout <<a; return 0; }

Rezolvare: 36. S se determine toate numerele de trei cifre cu proprietatea c suma inverselor cifrelor lor este un numr subunitar, iar cifrele sunt n ordine strict cresctoare. Exemplu: Numrul 245: 1/5 + 1/4 + 1/2 = fracie subunitar.
# include <iostream> using namespace std; int main ( ) { int i, a1, a2, a3; float S; for ( i=100; i <=999; i++) { a1= i%10; a2= i/10%10; a3= i/100; if ( a1<a2 && a2<a3) { S= 1/a1+ 1/a2+ 1/a3 if (S<1) cout << i<< "u"; } return 0; }

46. Se citesc de la tastatur mai multe numere naturale de cel mult 3 cifre. Se tie c se citesc cel puin 2 numere i c citirea continu, numr cu numr, pn cnd se citete un numr egal cu primul numr citit. S se scrie un algoritm Pascal, C/C++ care citete numerele i afieaz pe ecran media aritmetic a numerelor pare citite precum i numrul acestora. # include <iostream>
Se va afia mesajul NU EXIST dac nu exist nici un numr par printre cele citite. Alegei o metod de rezolvare care va gestiona eficient memoria. De exemplu, dac se citesc pe rnd numerele 5 6 2 7 9 6 8 5 se vor afia pe ecran valorile 5, 5 i 4.
using namespace std; int main ( ) { int x, y, S=0, nr=0; float ma; cin >>y; while ( x!=y) { cin >>x; if ( x%2==0) { S=S+x nr ++; } } ma= S/nr if (nr==0) cout<<"nu exista"; else cout<<ma; return 0; }

Rezolvare: 66. S se calculeze puterea la care apare numrul prim p n descompunerea numrului 1*2*3 ... *n, pentru un n numr dat.
# include < iostream> using namespace std; int main ( ) { int n, P=1, k, nr=0; cin>>n>>k; for( i=1; i <=n; i++) { p=p*i;} while (p%k==0) { p=p/k; nr++} cout<<nr; return 0; }