Odpowiedź:
#include <iostream>
using namespace std;
void czy_doskonala_I_rzedu(int liczba){
int sum_dziel=0;
for(int i=1;i<=liczba/2;i++){
if(liczba%i==0) sum_dziel+=i;
}
if(liczba==sum_dziel) cout<<"Liczba wpisana jest liczba doskonala I rzedu"<<endl;
else cout<<"Liczba wpisana nie jest liczba doskonala I rzedu"<<endl;
}
void czy_doskonala_II_rzedu(int liczba){
int sum_dziel=1;
for(int i=1;i<=liczba/2;i++){
if(liczba%i==0) sum_dziel*=i;
}
if(liczba==sum_dziel) cout<<"Liczba wpisana jest liczba doskonala II rzedu"<<endl;
else cout<<"Liczba wpisana nie jest liczba doskonala II rzedu"<<endl;
}
int main()
{
int liczba;
cout<<"Wpisz liczbe: ";
cin>>liczba;
czy_doskonala_I_rzedu(liczba);
czy_doskonala_II_rzedu(liczba);
}
Wyjaśnienie:
Myślę, że wyjaśnienie nie jest potrzebne, gdyż widać jak to zostało zrobione i łatwo jest się domyślić dlaczego tak, jeśli będą jakieś pytania proszę pisać w komentarzach, pozdrawiam serdecznie