Informatică, întrebare adresată de 24cosmin24, 9 ani în urmă

Cerinţa

Se citește un număr natural n. Să se determine suma divizorilor impari ai săi.
IAR EU AM SCRIS ASTA :
#include
#include
using namespace std;

int sumimpdiv(int x)
{int d,s=0;
for(d=1;d<=sqrtl(x);d++)
{if(x%d==0&&d%2==1)
s=s+d;
}
for(d=sqrtl(x);d!=x/d;d>=1;d--;)
{if(x%d==0&&d%2==1)
s=s+d;
}
return s;
}
int main()
{int x;
cin>>x;
cout< return 0;
}
UNDE AM GRESIT ?


Utilizator anonim: la for nu incepi de la unu,incepi de la 2
Utilizator anonim: toate numerele sunt divizibile cu 1
Utilizator anonim: a da la al doilea for ai gresit
Utilizator anonim: dupa d-- nu se pune punct si virgula

Răspunsuri la întrebare

Răspuns de Utilizator anonim
1
In primul rand (ca o eroare de algoritm), la for nu incepi de la unu,incepi de la 2,pentru ca toate numerele intregi sunt divizibile cu 1.
Erori de sintaxa:
La al doilea for ai pus ";" dupa d--.
Iar la cout ai pus "<" in loc de "<<" .
A si corect este "sqrt" nu "sqrtl".

Alte întrebări interesante