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

Đếm các cặp số từ 1 đến N với Sản phẩm chia hết cho Tổng của chúng trong C ++

Chúng ta được cho một số N. Mục đích là tìm các cặp số từ 1 đến N sao cho tích của các cặp bằng tổng của các cặp.

Hãy cho chúng tôi hiểu với các ví dụ.

Đầu vào - N =11

Đầu ra - Đếm các cặp số không. từ 1 đến N với Sản phẩm chia hết cho Tổng của chúng là - 1

Giải thích - Số 3 và số 6 có tích 18 và tổng 9 chia hết cho 18.

Đầu vào - N =30

Đầu ra - Đếm các cặp số không. từ 1 đến N với Sản phẩm chia hết cho Tổng của chúng là - 12

Giải thích - Các cặp là - (3, 6), (4,12), (5, 20), (6, 12), (6, 30), (8, 24), (9, 18), (10, 15 ), (12, 24), (15, 30), (20, 30), (21, 28)

Số cặp - 12

Cách tiếp cận được sử dụng trong chương trình dưới đây như sau

Chúng tôi sẽ duyệt từ 1 đến N bằng cách sử dụng vòng lặp FOR hai lần. Với mọi, tôi tìm kiếm j sao cho tích của (i, j) chia hết cho tổng i + j. Số lượng tăng dần cho các cặp suc i, j sao cho i! =J.

  • Lấy một số N làm đầu vào.

  • Hàm Sum_N (N) nhận N và trả về số lượng các cặp sao cho tích các số chia hết cho tổng các số.

  • Đi ngang từ i =1 đến i

  • Chuyển từ j =i + 1 đến j <=N.

  • Lấy số lượng ban đầu là 0.

  • Với mỗi i và j, tính temp =(i * j)% (i + j).

  • Nếu tạm thời là 0 thì tổng chia hoàn toàn tích. Số lượng tăng dần.

  • Sau khi kết thúc tất cả các lần lặp, số đếm sẽ có tổng số các cặp như vậy.

  • Kết quả là số lượt trả lại.

Ví dụ

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

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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