Se dau n numere naturale nenule. Ordonați descrescător cele n numere după numărul lor de divizori. c++
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
#include <algorithm>
using namespace std;
int nrdiv(int val)
{
int sol = 0;
for(int d = 2; d <= val / 2; d++)
if(val % d == 0)
sol++;
return sol;
}
bool comp(int a, int b)
{
return nrdiv(a) > nrdiv(b);
}
int main()
{
int n, v[100];
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
sort(v + 1, v + n + 1, comp);
for(int i = 1; i <= n; i++)
cout << v[i] << ' ';
return 0;
}
#include <algorithm>
using namespace std;
int nrdiv(int val)
{
int sol = 0;
for(int d = 2; d <= val / 2; d++)
if(val % d == 0)
sol++;
return sol;
}
bool comp(int a, int b)
{
return nrdiv(a) > nrdiv(b);
}
int main()
{
int n, v[100];
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
sort(v + 1, v + n + 1, comp);
for(int i = 1; i <= n; i++)
cout << v[i] << ' ';
return 0;
}
mickey213:
ai putea sa faci fara subprogram??
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă