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