Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Se citesc numere întregi până când se introduce numărul 0.
1. Să se afișeze toate perechile de numere citite consecutiv cu proprietatea că primul
număr este egal cu suma divizorilor proprii a celui de-al doilea număr.
2. Să se afișeze toate numerele introduse care au cifrele distincte.
3. Să se afișeze suma numerelor introduse care sunt palindrom.


Rayzen: In C++?
Utilizator anonim: da
Rayzen: Ok :D
Utilizator anonim: :)
Rayzen: Poti folosi subprograme (functii)?
Utilizator anonim: de prefrabil nu
Rayzen: Bun.
Utilizator anonim: ms mult

Răspunsuri la întrebare

Răspuns de Rayzen
2

#include <iostream>

using namespace std;

int main()

{

   int contor = 1;

   int n, V[50], i = 0;

   do

   {

     cin>>n;

     V[i++] = n;

   }

   while(n!=0);

 

  ///Prima cerinta:

   cout<<endl;

   cout<<"1.  ";

   for(int j=0; j<=i-3; j++)

   {

       int S=0;

       for(int d = 2; d <= V[j+1]/2; d++)

       {

           if(V[j+1]%d == 0) {S += d;}

       }

       if(V[j] == S)

          {

              cout<<"("<<V[j]<<","<<V[j+1]<<") ";

          }

   }

  ///A doua cerinta;

   cout<<endl;

   cout<<"2.  ";

   for(int j=0; j<=i-2; j++)

   {

       int nr = V[j], egale = 0;

       while(nr!=0)

       {

           int u = nr%10;

           int res = nr/10;

           while(res!=0)

           {

               if(u == res%10) {egale++;}

               res = res/10;

           }

           nr = nr/10;

       }

       if(egale == 0) {cout<<V[j]<<" ";}

   }

  ///A treia cerinta:

   cout<<endl;    

   cout<<"3.  ";

   int S = 0;

   for(int j=0; j<=i-2; j++)

   {

       int nr = V[j], egale = 0;

       int rasturnat = 0;

       while(nr!=0)

       {

           rasturnat = (rasturnat*10)+nr%10;

           nr = nr/10;

       }

       if(V[j] == rasturnat && V[j] > 9)

       {

           S = S+V[j];

       }

   }

   cout<<"S = "<<S;

}


Utilizator anonim: V este vector?
Rayzen: Da.
Utilizator anonim: ok
Utilizator anonim: ms
Rayzen: Ați făcut vectorii?
Rayzen: Cu plăcere !
Utilizator anonim: nu..dar lasă așa ca îi dau eu de cap
Utilizator anonim: ms oricum
Rayzen: Ok :)
Răspuns de Paddon
1

#include <iostream>

#include <fstream>

using namespace std;

int suma_divizorilor(int numar)

{

   int suma = numar + 1, divizor = 2;

   while(divizor <= numar / 2)

   {

       if(numar % divizor == 0)

           suma += divizor;

       divizor++;

   }

   return suma;

}

bool are_cifrele_distincte(int numar)

{

   int cifre[10] = {0};

   while(numar)

   {

       int ultima_cifra = numar % 10;

       if (cifre[ultima_cifra])

           return false;

       else

           cifre[ultima_cifra] = 1;

       numar /= 10;

   }

   return true;

}

bool este_palindrom(int numar)

{

   int cifre[9] = {0}, index = 0;

   while(numar)

   {

       cifre[index] = numar % 10;

       index++;

       numar /= 10;

   }

   for(int iterator = 0; iterator <= index / 2; iterator++)

   {

       if(cifre[iterator] != cifre[index - iterator - 1])

           return false;

   }

   return true;

}

int main()

{

   int numar1, numar2, sumar_numerelor_palindrom = 0;

   cin >> numar1;

   if(are_cifrele_distincte(numar1))

       cout << numar1 << " are toate cifrele distincte.\n";

   if(este_palindrom(numar1))

       sumar_numerelor_palindrom += numar1;

   while(cin >> numar2)

   {

       if(numar2 == 0)

           break;

       if(numar1 == suma_divizorilor(numar2))

           cout << numar1 << " este egal cu suma divizorilor lui " << numar2 << endl;

       if(are_cifrele_distincte(numar2))

           cout << numar2 << " are toate cifrele distincte.\n";

       if(este_palindrom(numar2))

           sumar_numerelor_palindrom += numar2;

       numar1 = numar2;

   }

   cout << "Suma numerelor palindrom este: " << sumar_numerelor_palindrom << endl;

   return 0;

}

Toate cerintele intr-un singur program.


Utilizator anonim: Dacă puteai sa le faci separat si fără vectori era perfect ;)
Utilizator anonim: dar ms mult :)
Paddon: Din intrebare am dedus ca e o singura problema, nu 3 probleme diferite.
Utilizator anonim: eh..
Alte întrebări interesante