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

C++에서 합으로 나눌 수 있는 제품을 사용하여 1에서 N까지의 숫자 쌍을 셉니다.

<시간/>

숫자 N이 주어집니다. 목표는 쌍의 곱이 쌍의 합과 같도록 1에서 N까지의 숫자 쌍을 찾는 것입니다.

예를 들어 이해합시다.

입력 - N=11

출력 − 쌍의 수입니다. 합으로 나눌 수 있는 1부터 N까지의 곱은 − 1

입니다.

설명 − 숫자 3과 6의 곱은 18이고 그 합 9는 18을 완전히 나눕니다.

입력 - N=30

출력 − 쌍의 수입니다. 곱을 합으로 나눌 수 있는 1에서 N은 -12

설명 - 쌍은 - (3, 6), (4,12), (5, 20), (6, 12), (6, 30), (8, 24), (9, 18), (10, 15) ), (12, 24), (15, 30), (20, 30), (21, 28)

쌍 수 - 12

아래 프로그램에서 사용한 접근 방식은 다음과 같습니다.

FOR 루프를 두 번 사용하여 1에서 N까지 탐색합니다. 모든 것에 대해, 나는 (i,j)의 곱이 합 i+j로 나누어떨어질 수 있도록 j를 검색합니다. i!=j가 되도록 suc i,j 쌍에 대한 증분 수.

  • 숫자 N을 입력으로 사용하십시오.

  • 함수 Sum_N(N)은 N을 취하고 숫자의 곱이 숫자의 합으로 나누어 떨어지도록 쌍의 개수를 반환합니다.

  • i=1에서 i으로 트래버스

  • j=i+1에서 j<=N.

    으로 순회
  • 초기 카운트를 0으로 합니다.

  • 각 i 및 j에 대해 temp=(i*j)%(i+j)를 계산합니다.

  • temp가 0이면 sum은 곱을 완전히 나눕니다. 증분 카운트.

  • 모든 반복이 끝나면 카운트는 그러한 쌍의 총 수를 갖게 됩니다.

  • 결과로 카운트를 반환합니다.

예시

#include <bits/stdc++.h>
using namespace std;
int Sum_N(int N){
   int count = 0;
   for (int i = 1; i < N; i++){
      for (int j = i + 1; j <= N; j++){
         int temp = (j * i) % (j + i);
         if (!temp){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int N = 20;
   cout<<"Count of pairs of numbers from 1 to N with Product divisible by their Sum are: "<<Sum_N(N);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Count of pairs of numbers from 1 to N with Product divisible by their Sum are: 6