Sunteți pe pagina 1din 4

Valeriu Iorga Programare n C

Probleme rezolvate.
1. Numerele naturale pot fi clasificate n: deficiente, perfecte sau abundente, dup cum suma
divizorilor este mai mic, egal sau mai mare dect valoarea numrului. stfel: n=12 este
a!undent deoarece are suma divizorilor: sd = 1+2+3+4+6 = 16 > 12, n=6 este
perfect: sd = 1+2+3 = 6, iar n=14 este deficient deoarece sd = 1+2+7 < 14.
"efini#i o func#ie avnd ca parametru un numr ntreg n, func#ie care ntoarce ca rezultat
1, 0 sau 1 dup cum numrul este deficient, perfect sau a!undent.
$crie#i o func#ie main() care cite%te dou valori ntregi x %i y %i clasific toate numerele
naturale cuprinse ntre x %i y afi%nd dup fiecare numr tipul acestuia, adic deficient,
perfect sau a!undent.
#include <stdio.h>
#include <stdlib.h>
int tipint n!"
int sd, d#
sd = 1#
$o%d=2# d<=n&2# d++!
i$n'd==0!
sd += d#
i$sd < n! %etu%n (1#
i$sd == n! %etu%n 0#
%etu%n 1#
)

int *+in!"
int n, x, y#
sc+n$,'d'd,, -x, -y!#
$o%n=x# n<=y# n++!"
p%int$,'.d ,, n!#
s/itchtipn!!"
c+se (10 p%int$,de$icient1n, !# b%e+2#
c+se 00 p%int$,pe%$ect1n,!# b%e+2#
c+se 10 p%int$,+bundent1n,!#
)
)
syste*,34567,!#
%etu%n 0#
)
&. Verifica#i 'con(ectura lui )old!ac*+, potrivit creia orice numr par poate fi scris ca cel pu#in
o sum a dou numere prime. Programul va genera %i afi%a descompunerile tuturor numerelor
pare pn la o limit dat L.
Vom considera %i pe 1 ca numr prim. ,-ceptnd primele dou descompuneri: &.1/1 %i
0.1/1.&/&, celelalte descompuneri vor avea termenii numere prime impare. Pentru un numr
1
Valeriu Iorga Programare n C
par p, o eventual descompunere, avnd termenii a %i p-a impune ca acestea s fie prime %i
impare.
#include <stdio.h>
#include <stdlib.h>
int p%i*int n!"
int d#
$o%d=2# d8d <= n# !"
i$n'd==0! %etu%n 0#
i$d==2!
d = 3#
else
d+=2#
)
%etu%n 1#
)
int *+in!"
int 9, p, +, nd#
sc+n$,'d,, -9!#
&8 sc%ie%e+ p%i*%lo% dou+ desco*pune%i 8&
p%int$, 2=1+11n 4=1+3=2+21n,!#
$o%p=6# p<=9# p+=2!"
p%int$,'4d ,, p!#
nd = 0#
$o%+=1# +<=p&2# ++=2!
i$p%i*+! -- p%i*p(+!!"
nd++#
p%int$,='4d+'4d,, +, p(+!#
)
i$nd==0!
p%int$,nu :e%i$ic+ con;ectu%+1n,!#
else
p%int$,1n,!#
)
syste*,34567,!#
%etu%n 0#
)
Probleme propuse.
1. 2 perec*e de numere naturale a %i ! se numesc numere prietene, dac suma divizorilor unuia
dintre numere este egal cu cellalt numr. "e e-emplu &&3 %i &40 sunt numere prietene
deoarece:
sd220! = 1+2+4+.+10+11+20+22+44+..+110 = 2<4
sd2<4! = 1+2+4+71+142 = 220
a5 $crie#i o func#ie avnd ca parametri un numr natural, care ntoarce suma divizorilor
&
Valeriu Iorga Programare n C
numrului.
!5 $crie#i o func#ie avnd ca parametri dou numere naturale, care ntoarce 1 sau 3, dup cum
cele dou numere sunt sau nu prietene.
c5 $crie#i o func#ie *+in!, care n intervalul x, y dat gse%te toate perec*ile de numere
prietene %i le afi%eaz.

3. $ se rezolve ecua#ia $x!=0, prin metoda tangentei, pornind cu un x
0!
dat, %i calculnd
x
2+1!
=x
2!
($x
2!
!&$=x
2!
! cu o precizie dat eps, care se atinge cnd >x
2+1!
(
x
2!
> < eps). 6unc#iile $x! %i $?x! sunt date de programator.
0. $e consider func#ia $x! = ln 1 + x
2
!. $ se scrie un program care ta!eleaz
func#ia pe n intervale, fiecare interval fiind precizat prin capetele + %i b %i pasul de afi%are h.
7. $ se scrie toate descompunerile unui numr par ca o sum de dou numere prime. $e va
utiliza o func#ie care sta!ile%te daca un numr este sau nu prim.
8.$ se scrie n C:
a5 9n su!program func#ie pentru calculul valorii unei func#ii $x! pentru o valoare dat x,
definit astfel:
!5 2 func#ie pentru calculul integralei definite:
prin metoda trapezelor, cu n pa%i egali, pe intervalul @+,bA, dup formula
unde h=b(+!&n
c5 9n program care calculeaz integrala unei func#ii definite la punctul a5, folosind func#ia !5,
pe un interval dat @p,BA, cu precizia epsilon :se repet calculul integralei pentru
n=10, 20,... pa%i, pn cnd diferen#a dintre dou integrale succesive devine mai mic
dect epsilon
;.Pentru un numr dat N s se afi%eze to#i factorii primi ai acestuia %i ordinul lor de
multiplicitate.$e va utiliza o func#ie care e-trage dintr<un numr un factor prim.
1

'

> +

<

1 pentru 1
1 1 pentru 1
1 pentru 1
&
x x x
x x
x x x
x $ ) (

b
+
dx x $ C ) (
1
]
1

+ + +

1
1
&
n
i
ih + $ b $ + $
h
C ) ( ) ( ) (
Valeriu Iorga Programare n C
4. 9tiliznd o func#ie pentru calculul celui mai mare divizor comun a dou numere, s se
calculeze c.m.m.d.c. a n elemente ntregi ale unei liste date.
=. Pentru fiecare element al unei liste de numere ntregi date, s se afi%eze numrul prim cel mai
apropiat de el ca valoare. "ac dou numere prime sunt la distant egal de un element din
list se vor afi%a am!ele numere prime.
0

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