👤

Să se afişeze toate numerele de k cifre care sunt numere prietene. (Două numere naturale a și b se numesc prietene dacă suma divizorilor lui a (fără a) este egala cu b și suma divizorilor lui b (fără b) este egală cu a.)

Răspuns :

#include <iostream>

#include <cmath>

using namespace std;

int sdiv(int n){

//Returneaza suma divizorilor lui n - numarul citit(fara n)

int s=0;

for(int i=1;i<=n/2;i++)

 if(n%i==0) s+= i;

return s;

}  

int main(){

int i,j,k;

 

//Citire date

cout << "k = ", cin >> k;

k = pow(10,k);

 

//Cautare numere

for(i=k/10;i<k;i++){

 for(j=i+1;j<k;j++){

  if(sdiv(i)==j && sdiv(j)==i) cout << "\n(" << i << " , " << j << " )";  

 }

}

}