Cum sa fac acest algoritm mai eficient?
Se dau n numere naturale. Afișați aceste numere ordonate crescător după suma divizorilor. Dacă două numere au aceeași sumă a divizorilor, se va afișa mai întâi cel mai mic.
Anexe:
AntiEaglesDavids:
rezolvarea asta am mai vazut-o parca...
Răspunsuri la întrebare
Răspuns de
3
#include <iostream>using namespace std;int s(int x) {int i,sum=0; for (i=1;i<=x;i++) if (x%i==0) sum=sum+i; return sum};int main() {int n,v[100],i,aux,j cin>>n; for (i=1;i<=n;i++) cin>>v[i]; for (i=1;i<n;i++) for (j=i+1;j<=n;j++) if (sum(v[i])>sum(v[j]) || (sum(v[i])==sum(v[j]) && v[i]>v[j])) {aux=v[i]; v[i]=v[j]; v[j]=aux;}; for (i=1;i<=n;i++) cout<<v[i]; return 0;}
Nu stiu pentru ce ai pus si vectorul x :-? si trebuie declarati si vectorii la inceput
Nu stiu pentru ce ai pus si vectorul x :-? si trebuie declarati si vectorii la inceput
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă