Opis kodu c++

0

Chciałbym zapytać, czy mogę poprosić kogoś o opisanie poniższego kodu, z grubsza, która część co tutaj robi?

Chciałbym bardziej to zrozumieć z góry dzięki


```#include <iostream>
#include <cmath>
 
 
using namespace std;
 
 
bool perfect(int n)
{
    int s = 1; 
    int p = sqrt(n);
    for(int i=2; i<=p; i++)
    {
        if(n%i == 0)
        {
            s+= i + n/i;
        }
    }
 
    if(n == p*p) 
    {
        s-=p;
    }
    if(n == s)
    {
        return 1;
    }
     
    return 0;   
}
 
int main()
{
    int n;
    cout<<"Enter number: ";
     
    cin>>n;
     
    if(perfect(n))
    {
        cout<<"Number "<<n<<" is perfect";
    }
    else
    {
        cout<<"Number "<<n<<" isn't perfect";
    }
     
    cin.ignore();
    getchar();
    return 0;
}

0

Chciałbym zadać zwyczajne pytanie, a co z tego nie rozumiesz, ale podejrzewam, że powiesz, że nic. Dlatego zadam inne pytanie - wytłumacz proszę, co z tego rozumiesz?

0

@enedil: rozumiem wszystko poza tą częścią kodu

bool perfect(int n)
{
int s = 1;
int p = sqrt(n);
for(int i=2; i<=p; i++)
{
if(n%i == 0)
{
s+= i + n/i;
}
}
if(n == p*p)
{
s-=p;
}

if(n == s) return 1;
2

Liczyt sumę dzielników liczby, n, potem robi z nich sumę dzielników właściwych, s -= p; i zwraca true, jeśli ta suma jest równa liczbie, n, (liczba doskonała).

0

@lion137: wielkie dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1