Tin học C++ nha

quang123@

Học sinh mới
Thành viên
13 Tháng tám 2022
4
1
6
14
Nghệ An
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Yêu cầu: Cho dãy số nguyên (a1, a2,..., an), hãy đếm số cặp (i, j) thỏa mãn:
1 ≤ i < j ≤ n và lcm(ai, aj) <=K với lcm là phép lấy bội chung nhỏ nhất của hai số.
Dữ liệu:
- Dòng đầu tiên ghi số nguyên không âm n (0 < n ≤ 100), và số nguyên K
- Dòng thứ 2 ghi n số nguyên dương kiểu 64 – bit.
Kết quả: In ra số lượng cặp (i, j) thỏa mãn yêu cầu.

Ví dụ​

  • input
    3 6
    3 2 4
    output
    2
 

System32

Học sinh chăm học
Thành viên
25 Tháng chín 2018
343
348
76
Hà Nội
THPT Marie Curie
Yêu cầu: Cho dãy số nguyên (a1, a2,..., an), hãy đếm số cặp (i, j) thỏa mãn:
1 ≤ i < j ≤ n và lcm(ai, aj) <=K với lcm là phép lấy bội chung nhỏ nhất của hai số.
Dữ liệu:
- Dòng đầu tiên ghi số nguyên không âm n (0 < n ≤ 100), và số nguyên K
- Dòng thứ 2 ghi n số nguyên dương kiểu 64 – bit.
Kết quả: In ra số lượng cặp (i, j) thỏa mãn yêu cầu.

Ví dụ​

  • input
    3 6
    3 2 4
    output
    2
quang123@Tham khảo nha
C++:
#include <iostream>

using namespace std;

#define lli long long int

lli gcd(lli a, lli b) { return (b == 0) ? a : gcd(b, a % b); }

lli lcm(lli a, lli b) { return a / gcd(a, b) * b; }

int main() {
    int n, k; cin >> n >> k;
    lli a[n];
    for (auto &x : a) cin >> x;
    int count = 0;
    for (int i = 0; i < n - 1; i++)
        for (int j = i + 1; j < n; j++)
            if (lcm(a[i], a[j]) <= k) count++;
    cout << count << "\n";
    return 0;
}
 
  • Like
Reactions: quang123@
Top Bottom