Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm tất cả các ước số hoàn hảo của một số trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm số của tất cả các ước số hoàn hảo của một số.

Đối với điều này, chúng tôi sẽ được cung cấp một số. Nhiệm vụ của chúng ta là đếm tất cả các ước số hoàn hảo của số đã cho đó.

Ví dụ

#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;
}

Đầu ra

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