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