Sunteți pe pagina 1din 2

Problema 1.

/*am inclus biblioteca , am declarat variabilele n , i,j , p am initializat n cu 1001 (numar mai mare ca
1000) p l-am facut initial mic(p=0),

pentru a intra in while , am citit n cat timp e mai mare decat 1000 , cand numarul dat este bun am

folosit un for pentru a gasi posibili divizori proprii (de la n=2 (1 nu e divizor propriu)pana la n/2 ) apoi
am verificat daca e mai m

are decat p divizorul anterior ,apoi daca e p ramane 0 nu are divizori proprii daca p e diferit de o are
divizori */

#include<iostream>

using namespace std ;

int main()

//1. Se dă n număr natural nenul , n<=1000. Să se afişeze cel mai mare divizor propriu al lui n.

int n=1001,i,j,p=0;

while(n>1000)

cout<<"Dati numarul n=";cin>>n;

for(i=2;i<=n/2;i++)

if(n%i==0)j=i;

if(j>p)p=j;

if(p==0)cout<<"NU ARE DIVIZOR PROPRIU";else

cout<<"Cel mai mare divizor propriu este"<<p; }

Problema 2.

/*am inclus biblioteca , am declarat variabilele n , i, p am initializat n cu 1001 (numar mai mare ca
1000) p l-am facut initial 0 pentru ca va inregistra suma,
pentru a intra in while , am citit n cat timp e mai mare decat 1000 , cand numarul dat este bun am

folosit un for pentru a gasi posibili divizori si i-am adaugat in suma (pe cei gasiti) in final am verificat
daca suma divizorilor este egala cu el si am afisat mesajul necesar*/

#include<iostream>

using namespace std ;

int main()

int n=1001,i,p=0;

while(n>1000)

cout<<"Dati numarul n=";cin>>n;

for(i=1;i<=n/2;i++)

if(n%i==0)p=p+i; }

if(p==n)cout<<"DA";

else cout<<"NU"; }