Sunteți pe pagina 1din 3

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"; }Problema 4.

#include<iostream>

using namespace std;

int cmmdc(int a,int b)

{if(b==0)return a;

return cmmdc(b,a%b);}

int main()

{int a,b,c;

cout<<"Dati a=";cin>>a;//se citesc a,b,c

cout<<"Dati b";cin>>b;

cout<<"Dati c=";cin>>c;

int d=cmmdc(a,b);//il initializam pe d ca fiind cel mai mare divizor comun si pe e ca fiind cel mai mare
divizor comun al tuturor numerelor

int e=cmmdc(d,c);
if(e!=1)cout<<endl<<e;//afiseaza cel mai mare divizor comun

else cout<<"1 NUMERELE SUNT PRIME INTRE ELE";

return 1;}

Problema 5.

#include<iostream>

using namespace std;

int main()

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

while(n>1000)//cat timp n e mai mare decat 1000

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

}//il citim pe n

cout<<"Dati x=";cin>>x;//il citim pe x

while(n!=0)//cat timp n e diferit de 0

{if(n%x==0)//daca x e divizor al lui n

{p++;n=n/x;}//creste puterea,n se imparte la x

else n=0;}//altfel n este 0

if(p!=0)cout<<p;//daca puterea e diferita de 0 o afisam

else cout<<0;//altfel afisam 0

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