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

Problema 30 va rog si explicata daca se poate

Anexe:

Răspunsuri la întrebare

Răspuns de SenZatIonALL02
1

Răspuns:

#include <iostream>

using namespace std;

int sum ( int x )

{

   int s = 0;

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

       if ( x % d == 0 )

       s = s + d;

   return s;

}

int main()

{

   int x[100], y[100], n, i, aux;

   cin >> n;

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

   {

       cin >> x[i];

       y[i] = sum(x[i]);

   }

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

       for ( int j = i + 1; j <= n; j++ )

       if ( y[i] > y[j] )

   {

       aux = y[i];

       y[i] = y[j];

       y[j] = aux;

   }

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

       cout << y[i] << " ";

   return 0;

}

Explicație: functia cred ca o intelegi, e ca si la numar prim. Am pus numerele intr-un vector x, iar suma divizorilor intr-un alt vector y. Apoi am sortat vectorul y ( prin metoda bubble sort ) si am afisat vectorul y sortat.


aristicaa: multumesc mult
aristicaa: le afiseaza amestecat nu in ordine crescatoare
Alte întrebări interesante