Se citeste un numar natural. Sa se verifice daca
numarul de divizori proprii ai lui este un numar prim.
Răspunsuri la întrebare
Răspuns:
#include<iostream>
using namespace std;
int x,k,s,p,prod,d;
int prim(int n)
{
if(n==0)return 0;
if(n==1)return 0;
if(n==2)return 1;
if(n%2==0)return 0;
for(int i=3;i*i<=n;i+=2)
if(n%i==0)return 0;
return 1;
}
int main()
{
cin>>x;
d=2;
prod=1;
while(x!=1)
{
p=0;
while(x%d==0)
{
x/=d;
p++;
}
if(p)prod*=(p+1);
d++;
}
prod-=2;
if(prim(prod)==1)cout<<"Numarul de divizori este prim";
else cout<<"Numarul de divizori nu este prim";
}
Explicație:
Răspuns:
#include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int sum = 0;
if(n % 2 == 0){
sum = n;
}
for(int i = 2;i<=n/2;i++){
if(n%i == 0 && i %2 ==0){
sum+=i;
}
}
cout<<sum;
return 0;
}
Explicație: