Se citeste de la tastatura un numar natural nenul n de cel mult 4 cifre. Sa se verifice daca suma divizorilor lui n este un numar prim. Daca da, se va afisa suma divizorilor sai, altfel se va scrie numarul acestora. Ex: pentru n=30 se va afisa (1+2+3+5+6+10+15+30=72 nu e prim deci se va afisa 8, numarul divizorilor)
Răspunsuri la întrebare
Răspuns de
1
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:
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă