Răspuns:
#include <iostream>
using namespace std;
int n;
int d;
int s, nrdivi;
bool Eprim ( int x )
{
if ( x <= 1 ) return 0;
int d = 2;
while ( d * d <= x )
{
if ( x % d == 0 )
return 0;
d++;
}
return 1;
}
int main()
{
cin >> n;
d = 1;
while ( d * d < n )
{
if ( n % d == 0 )
{
s += d;
s += n / d;
nrdivi += 2;
}
d++;
}
if ( n / d == d )
{
nrdivi++;
s += d;
}
if ( Eprim(s) )
cout << s;
else cout << nrdivi;
return 0;
}
Explicație: