Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับตัวหารสมบูรณ์ของตัวเลขใน C++


ในบทช่วยสอนนี้ เราจะอภิบายโปรแกรมเพื่อหาจำนวนตัวหารสมบูรณ์ของตัวเลขทั้งหมด

สำหรับเรื่องนี้ เราจะได้รับตัวเลข งานของเราคือนับตัวหารสมบูรณ์ทั้งหมดของตัวเลขที่กำหนด

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

// checking perfect square
bool if_psquare(int n) {
    int sq = (int) sqrt(n);
    return (n == sq * sq);
}

// returning count of perfect divisors
int count_pdivisors(int n) {
    int count = 0;
    for (int i = 1; i * i <= n; ++i) {
        if (n % i == 0) {
            if (if_psquare(i))
                ++count;
            if (n / i != i && if_psquare(n / i))
                ++count;
        }
    }
    return count;
}

int main() {
    int n = 16;
    cout << "Total perfect divisors of " << n << " = " << count_pdivisors(n) << "\n";
    n = 12;
    cout << "Total perfect divisors of " << n << " = " << count_pdivisors(n);
    return 0;
}

เอาต์พุต

Total perfect divisors of 16 = 3
Total perfect divisors of 12 = 2