Informatică, întrebare adresată de MadalinaMadutaa, 9 ani în urmă

Cerința
Se dă un vector cu n elemente, numere naturale. Afișați în ordine descrescătoare valorile din vector care sunt prime cu ultimul element al vectorului.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire
Programul va afișa pe ecran valorile cerute, în ordine descrescătoare, separate prin exact un spațiu.

Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000



Exemplu
Intrare

8
16 7 6 3 1 5 9 14
Ieșire

9 5 3 1


Utilizator anonim: In ce limbaj C++ sau Pascal ?
MadalinaMadutaa: c++

Răspunsuri la întrebare

Răspuns de StarBack
3
Buna seara. Uite aici rezolvarea problemei. Succes in continuare!



#include <iostream>

using namespace std;

int Prime(int a, int b)
{
        int r;

        while (b > 0)
        {
                 r = a % b;
                 a = b;
                 b = r;
        }

        return (a == 1);
}

int main(){
        int n, i, j, k = 1;
        int v[1000], w[1000];
        bool found;

        cin >> n;

        for (i = 1; i <= n; i++)
                 cin >> v[i];


        for (i = 1; i <= n; i++)
        {
                  if (Prime(v[i], v[n]))
                  {
                           w[k++] = v[i];
                  }
         }

         do
         {
                 found = true;
                 for (j = 1; j <= k - 1; j++)
                 {
                          if (w[j] < w[j + 1])
                          {
                                  swap(w[j], w[j + 1]);
                                  found = false;
                          }
                  }

            } while (!found);

          for (i = 1; i <= k - 1; i++)
                    cout << w[i] << " ";

        return 0;
}

MadalinaMadutaa: nu am invatat inca do
MadalinaMadutaa: poti face cu while?
StarBack: found = true;

while (found)
{
found = false;
for (int i = 0; i < n - 1; i++)
{
if (v[i] > v[i + 1])
{
swap(v[i], v[i + 1]);
found = true;
}
}
}
MadalinaMadutaa: ce inseamna swap???
StarBack: Ti-am lasat un mesaj cu explicatia. Succes.
MadalinaMadutaa: merai
MadalinaMadutaa: mersi
MadalinaMadutaa: ce inseamna while (!found) ??
Alte întrebări interesante