Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đếm cặp số từ 1 đến N có tích chia hết cho tổng trong C++


Cho số N. Tìm số cặp (i,j) với 1 <= i < j <= N sao cho i*j chia hết cho i+j.

Ví dụ

Đầu vào − N = 11

Đầu ra − 1

Giải thích − (3,6): 3*6=18, 3+6=9, 18%9=0.

Đầu vào − N = 30

Đầu ra − 12

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

Phương pháp giải

Duyệt 2 vòng lặp i=1..N-1, j=i+1..N. Kiểm tra (i*j) % (i+j) == 0. Đếm.

  • Hàm Sum_N(int N).
  • count = 0.
  • Lặp i, j, nếu (i*j) % (i+j) == 0 → count++.
  • Trả về count.

Ví dụ code

#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++)
            if ((i * j) % (i + j) == 0) 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

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