ในบทช่วยสอนนี้ เราจะอภิบายโปรแกรมเพื่อหาจำนวนตัวหารสมบูรณ์ของตัวเลขทั้งหมด
สำหรับเรื่องนี้ เราจะได้รับตัวเลข งานของเราคือนับตัวหารสมบูรณ์ทั้งหมดของตัวเลขที่กำหนด
ตัวอย่าง
#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