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.
Răspunsuri la întrebare
#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;
}
#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.