Cho một số N. Mục tiêu là tìm các cặp có thứ tự của số dương sao cho tích của chúng nhỏ hơn N.
Ta thực hiện bằng cách bắt đầu từ i=1 đến i<N và j=1 đến (i*j)<N. Sau đó tăng count.
Hãy hiểu qua các ví dụ.
Đầu vào
N=4
Đầu ra
Cặp có thứ tự tích nhỏ hơn N: 5
Giải thích
Các cặp: (1,1), (1,2), (1,3), (2,1), (3,1)
Đầu vào
N=100
Đầu ra
Cặp có thứ tự tích nhỏ hơn N: 473
Giải thích
Các cặp: (1,1), (1,2), (1,3)... (97,1), (98,1), (99,1). Tổng 473.
Phương pháp sử dụng trong chương trình dưới đây
- Nhận số nguyên N.
- Hàm
productN(int n)nhận n và trả về số cặp có thứ tự với tích < n. - Khởi tạo biến count = 0 cho cặp.
- Duyệt bằng hai vòng lặp for để tạo cặp.
- Bắt đầu từ i=1 đến i<n. Và j=1 đến (i*j)<n.
- Tăng count 1.
- Sau tất cả vòng lặp count chứa tổng số cặp như vậy.
- Trả về count làm kết quả.
Ví dụ
#include <bits/stdc++.h>
using namespace std;
int productN(int n) {
int count = 0;
for (int i = 1; i < n; i++) {
for(int j = 1; (i*j) < n; j++) {
count++;
}
}
return count;
}
int main() {
int N = 6;
cout << "Cặp có thứ tự tích nhỏ hơn N: " << productN(N);
return 0;
}
Đầu ra
Nếu chạy mã trên sẽ cho kết quả sau:
Cặp có thứ tự tích nhỏ hơn N: 10