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 ?
Răspunsuri la întrebare
Răspuns de
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;
}
#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;
}
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;
}
}
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Ed. tehnologică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă