Informatică, întrebare adresată de tanctanc6373, 8 ani în urmă

Numerele naturale x și y sunt numite în armonie dacă suma lor aparține intervalului deschis definit de suma divizorilor lui x, respectiv suma divizorilor lui y.


Subprogramul armonie are doi parametri, x şi y, prin care primește câte un număr natural din intervalul [1,106]. Subprogramul returnează valoarea 1, dacă x și y sunt în armonie, sau valoarea 0 în caz contrar.


Scrieți definiția completă a subprogramului.


Exemplu: dacă x=8, iar y=12 subprogramul returnează 1 (1+2+4+8=15, 1+2+4+6+12=25, iar 8+12=20(15,25)), iar dacă x=8 și y=13, subprogramul returnează 0 (1+2+4+8=15, 1+13=14, iar 8+13=21(14,15)).

Răspunsuri la întrebare

Răspuns de Mateiut9
1

Răspuns:

int armonie(int x, int y){

   int s,d,sum=x+y;

   for(int i=1;i*i<=x;i++){

       if(x%i==0){

           s+=i;

           s+=x/i;

       }

       if(i*i==x){

           s-=i;

       }

   }    

   for(int i=1;i*i<=y;i++){

       if(y%i==0){

           d+=i;

           d+=y/i;

       }

       if(i*i==y){

           d-=i;

       }

   }  

   if(s<sum && sum<d){

       return 1;

   }

   return 0;

Explicație:

Alte întrebări interesante