B10 - Buổi 38 - Chuyên đề số học: Duyệt ước (TT)

Hàm tính tổng các ước nguyên dương của một số nguyên N:

long long tong_uoc(long long n)
{
    long long s=0;
    for(int i=1; i<=sqrt(n); i++)
        if (n%i == 0)
            s = s + i + n/i;
    long long k = sqrt(n);
    if (k*k == n)
        s = s - k;
    return s;
}

Hàm đếm số lượng các ước nguyên dương của một số nguyên N:

int dem_uoc(long long n)
{
    int dem=0;
    for (int i=1; i<=sqrt(n); i++)
        if (n%i == 0) dem = dem + 2;
    long long k = sqrt(n);
    if (k*k == n)
        dem--;
    return dem;
}
Nhận xét

Không có ý kiến tại thời điểm này.