Ce este gresit la programul meu? Cerinta este: Programul citește de la tastatură numărul n. Programul afișează pe ecran numărul S, reprezentând suma divizorilor impari ai lui n. Date de intrare: 30; date de iesire: 24. Am construit programul, insa suma divizorilor mei impari imi iese 55 atunci cand rulez programul si nu inteleg de ce...Asta e programul meu:

#include

using namespace std;


int main()

{

int n;

cin>>n;

if(n!=1)

{

long long s=0;

for(int d=1; d*d<=n; d++)

{

if (d%2!=0)

{

if(n%d==0)

{

s+=d;

s+=n/d;

}

if(d*d==n)

s-=d;

}

}

cout<
}

else

cout<<1;

return 0;

}

Smile Life

Show life that you have a thousand reasons to smile

Get in touch

© Copyright 2024 DOKU.TIPS - All rights reserved.