Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 부분 표본 합계?

<시간/>

여기서 우리는 Aliquot 합계가 무엇인지 볼 것입니다. n의 부분 표본 합은 n을 제외한 n의 모든 완전 인수의 합입니다. 예를 들어 숫자가 20이면 완전 인수는 (1, 2, 4, 5, 10)입니다. 따라서 Aliquot의 합계는 22입니다.

한 가지 흥미로운 사실은 숫자의 Aliquot 합계가 숫자 자체인 경우 해당 숫자는 완전한 숫자라는 것입니다. 예:6. 요인은 (1, 2, 3)입니다. 부분 표본 합계는 1+2+3=6입니다.

다음 알고리즘을 사용하여 Aliquot 합계를 얻는 방법을 살펴보겠습니다.

알고리즘

getAliquotSum(n)

begin
   sum := 0
   for i in range 1 to n, do
      if n is divisible by i, then
         sum := sum + i
      end if
   done
   return sum.
end

예시

#include <iostream>
using namespace std;
int getAliquotSum(int n) {
   int sum = 0;
   for(int i = 1; i<n; i++) {
      if(n %i ==0) {
         sum += i;
      }
   }
   return sum;
}
int main() {
   int n;
   cout << "Enter a number to get Aliquot sum: ";
   cin >> n;
   cout << "The Aliquot sum of " << n << " is " << getAliquotSum(n);
}

출력

Enter a number to get Aliquot sum: 20
The Aliquot sum of 20 is 22