Scrieti un program c++.
Se dau n numere naturale nenule. Ordonați descrescător cele n numere după numărul lor de divizori.
Răspunsuri la întrebare
Răspuns de
1
Din moment ce e c++ mi-am permis sa folosesc functia std::sort pentru sortare.
#include <iostream>
#include <vector>
#include <algorithm>
struct Numar
{
unsigned int nr;
unsigned int divizori;
bool operator ()(Numar &left, Numar &right)
{
return left.divizori > right.divizori;
}
};
const unsigned int num_divizori(const int x);
int main() {
unsigned int n; std::cin >> n;
std::vector<Numar> v;
Numar temp;
for (int i = 0; i < n; i++)
{
// citim numarul
std::cin>> temp.nr;
// calculam numarul de divizori
temp.divizori = num_divizori(temp.nr);
// inseram datele in
vector v.push_back(temp);
}
// sortam vectorul descrescator
std::sort(v.begin(), v.end(), Numar());
// afisam vectorul
for (unsigned int i = 0; i < v.size(); i++) std::cout << v[i].nr << " ";
return 0;
}
const unsigned int num_divizori(const int x)
{
unsigned int count = 0;
for (unsigned int d = 1; d <= x; d++) if (x%d == 0) ++count;
return count;
}
#include <iostream>
#include <vector>
#include <algorithm>
struct Numar
{
unsigned int nr;
unsigned int divizori;
bool operator ()(Numar &left, Numar &right)
{
return left.divizori > right.divizori;
}
};
const unsigned int num_divizori(const int x);
int main() {
unsigned int n; std::cin >> n;
std::vector<Numar> v;
Numar temp;
for (int i = 0; i < n; i++)
{
// citim numarul
std::cin>> temp.nr;
// calculam numarul de divizori
temp.divizori = num_divizori(temp.nr);
// inseram datele in
vector v.push_back(temp);
}
// sortam vectorul descrescator
std::sort(v.begin(), v.end(), Numar());
// afisam vectorul
for (unsigned int i = 0; i < v.size(); i++) std::cout << v[i].nr << " ";
return 0;
}
const unsigned int num_divizori(const int x)
{
unsigned int count = 0;
for (unsigned int d = 1; d <= x; d++) if (x%d == 0) ++count;
return count;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă