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

Se dau două numere naturale a și b. Dacă cele două numere sunt prime între ele (adică
au cel mai mare divizor comun egal cu 1), atunci să se calculeze suma cifrelor celor două
numere, altfel să se determine câți divizori pari are numărul cel mai mare.
Exemplu:
1. dacă se citesc numerele 17 și 122, atunci se va afișa: 13 ( cmmdc(17,122)=1 și
1+7+1+2+2=13)
2. dacă se citesc numerele 100 și 25 se va afișa: 5 ( 100>25, iar divizorii pari ai lui 100 sunt:
2, 4, 10, 20, 50)

urgent,multumesc!

Răspunsuri la întrebare

Răspuns de lucaciucandrei
1

COROANA TE ROG!!!

#include<iostream>

using namespace std;

int main(){

   int a, b, x, y;

   cin>>a>>b;

   x=a;

   y=b;

   while(x!=y)

       if(x>y)

           x=x-y;

       else

           y=y-x;

   if(x==1){

       int s=0;

       do{

           s+=a%10;

           a/=10;

       }while(a!=0);

       do{

           s+=b%10;

           b/=10;

       }while(b!=0);

       cout<<s;

   }

   else{

       int max=(a>b)?a:b, k=0;

       for(int d=2;d<=max/2;d++)

           if(max%d==0&&d%2==0)

               k++;

       cout<<k;

   }

   return 0;

}

Alte întrebări interesante