Am revenit cu problema in varianta C++. Sper ca te-am ajutat.Am facut-o pe un compilator online. Dupa mine e cel mai bine optimizata.Nu uita daca te-am ajutat sa imi dai o coronita. Tot respectul.
#include <iostream>#include <math.h>
using namespace std;
int sumimpdiv(int x)
{
int s=0;
if(x == 1)
s =1;
else
{
for(int d=1;d<=sqrt(x)+1;d=d+2)
if(x%d==0&&d%2==1)
{
s=s + d + (x/d);
if((x/d)%2!=1 || (x/d) == d)
s-=(x/d);
}
cout<<endl;
}
return s;
}
int main()
{
int x;
cin>>x;
cout<<endl;
cout<<sumimpdiv(x);
return 0;
}