Sunteți pe pagina 1din 2

INFORMATIC-CDC-IX-D an colar 2013-2014

February 14, 2014

Semestrul al II lea - Fia nr.9


Prelucrarea divizorilor unui numr ntreg n- primalitate Obs. 1. Numrul d este divizor al numrului n dac n%d=0. 2. Divizorul propriu al unui numr n este un divizor diferit de 1 i numrul n. 3. Pentru un numr ntreg n, divizorii proprii sunt numere din intervalul [2, [n/2] ] Aplicaii rezolvate: 1. Afiarea divizorilor proprii 2. Determinarea celui mai mare i a celui mai mic divizor propriu 3. Determinarea primalitii numrului n. (este sau nu este prim ) Problema 1: Se citete un numr ntreg n. S se realizeze un algoritm care s afiseze toti divizorii proprii ai numrului n. De exemplu dac se citete pentru n valoarea 12 atunci algoritmul va afia 2 3 4 6 , iar n cazul n care se citete n = 13 se va afia 13 nu are divizori proprii. n pseudocod, algoritmul de rezolvare este: ntreg n,i , OK Explicarea algoritmului: Se folosete o citete n structur repetitiv cu numr cunoscut de OK0 repetiii, n care se verific dac n este pentru i 2,[n/2] execut divizibil cu i, unde i ia toate valorile de la 2 | dac (n % i = 0) atunci pn la [n/2]. | | scrie i, Variabila OK primete valoarea 1 dac | | OK1 numrul n are cel puin un divizor propriu, | | n caz contrar,va memora n final valoarea | 0, valoarea cu care a fost iniializat. dac OK=0 atunci | scrie n, nu are divizori proprii | Evoluia variabilelor Iniial n=12, OK=0, i=2
2<=[12/2] Adevarat 12%2=0 Adevarat Se afiseaza 2 OK=1 i=2+1 3<=[12/2] Adevarat 12%3=0 Adevarat Se afiseaza 3 OK=1 i=3+1 4<=[12/2] Adevarat 12%4=0 Adevarat Se afiseaza 4 OK=1 i=4+1 5<=[12/2] Adevarat 12%5=0 Fals --i=5+1 6<=[12/2] Adevarat 12%6=0 Adevarat Se afiseaza 6 OK=1 i=6+1 6<=[12/2] Fals Alg. Continua cu instructiunea daca OK=0... 1=0 Fals stop

Problema 2: Se citete un numr ntreg n. S se realizeze un algoritm care s afieze cel mai mic i cel mai mare divizor propriu al numrului n. De exemplu dac se citete pentru n valoarea 12 atunci algoritmul va afia 2 6 , iar n cazul n care se citete n = 13 se va afia 13 nu are divizori proprii. n pseudocod, algoritmul de rezolvare este: ntreg n,i , OK Evoluia variabilelor Iniial n=14, OK=0, citete n i=2 OK0 2<=[14/2] Adevarat pentru i 2,[n/2] execut 14%2=0 Adevarat | dac (n % i = 0) atunci Se afiseaza cel mai mic divizor propriu este | | scrie cel mai mic divizor propriu este ,i, 2 cel mai mare divizor propriu este 7 | cel mai mare divizor propriu este , [n/i] i=[14/2], OK=1 | i[n/2], OK1 i=7+1 | | | 8<=[14/2] Fals dac OK=0 atunci Alg. continua cu instructiunea daca OK=0 | scrie n, nu are divizori proprii 1=0 Fals | Stop --- 1/2 ---

INFORMATIC-CDC-IX-D an colar 2013-2014

February 14, 2014 Problema 3: (Primalitatea unui numr ) Se citete un numr ntreg n. S se realizeze un algoritm care s verifice dac numrul n este prim. De exemplu dac se citete pentru n valoarea 12 atunci algoritmul va afia numar NEPRIM, iar n cazul n care se citete n = 13 se va afia mesajul numar PRIM. n pseudocod algoritmul de rezolvare este: ntreg n, i, prim Obs. Algoritmul folosete o structur citete n repetitiv cu numr cunoscut de repetiii, n dac n = 1 sau n=0 atunci care se caut divizori proprii. n caz c se | scrie numar NEPRIM gasesc divizori, numrul nu este prim, altfel | altfel numrul este prim. Se folosete o variabil | | prim 1 //presupunem ca numrul este prim semafor numit prim care iniial are | | pentru i 2, [n/2] execut valoarea 1 i se modific n 0 doar dac | | | dac (n % i = 0) atunci se gsesc divizori. | | | | prim 0 //am gsit divizori, nr nu e prim | | | | i[n/2] | | | | | | | | | dac prim = 1 atunci | | | scrie n,numar PRIM | | |altfel | | |scrie n, numar NEPRIM | | | | | | PROBLEME PROPUSE 1. Se citete un numr ntreg n. S se realizeze un algoritm care s calculeze i s afieze numrul de divizori proprii ai numrului n. 2. Se citete un numr ntreg n. S se realizeze un algoritm care s afiseze toate numerele perfecte mai mici sau egale cu n. Spunem c un numr este perfect dac este egal cu suma divizorilor si, far el nsui.Ex. n=6=1+2+3 3. Se citesc dou numere ntregi a i b. S se realizeze un algoritm care s verifice dac cele doau numere sunt prietene. Spunem ca dou numere sunt prietene dac suma divizorilor proprii ai unui numr este egal cu celalalt i invers. 4. Un numar se numeste aproape prim daca poate fi scris ca produs de 2 numere prime distincte. Sa se determine daca un numar dat este aproape prim. Ex. n=14=2*7 5. * Sa se afiseze toate numerele prime din intervalul [a,b]. 6. * Sa se afiseze toate perechile numere naturale x si y din intervalul [1,n] care sunt prime si consecutive in multimea numerelor impare. De exemplu, de la 1 la 15 avem perechile: (3 5) (5 7) (11 13) 7. * Un numar natural n se numeste superprim daca atat el cat si toate prefixele sale sunt numere prime. Numarul 2399 este superprim deoarece 2399, 239, 23 si 2 sunt numere prime. Pentru un numar natural n citit de la tastatura, aflati toate numerele superprime mai mici sau egale cu n. 8. * Se citesc 2 numere naturale a si b. Afisati toate perechile de numere x si y din intervalul [a,b] care au proprietatea ca au acelasi numar de divizori.

--- 2/2 ---

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