Không hỗ trợ Mobile

Chế độ luyện tập yêu cầu môi trường màn hình lớn để làm bài và chống gian lận hiệu quả. Vui lòng truy cập bằng máy tính (Desktop/Laptop) để tiếp tục thao tác.

Quay lại trang chủ

#1014 · Ước số chung lớn thứ K – KCD

Cho hai số nguyên dương MN. Tìm ước số chung lớn thứ k của MN. Dữ liệu bảo đảm luôn luôn có đáp án.

Dữ liệu vào

Một dòng chứa ba số M, N, k phân cách với nhau bởi dấu cách.

Dữ liệu ra

Một dòng duy nhất chứa kết quả tìm được.

Ràng buộc

  • 1 \leq M,N \leq 100
  • k ≥ 1

BẢNG TỔNG QUAN KẾT QUẢ

# Tài khoản Kết suất Lúc nộp
1
T
Trình Minh Trí @2180608752
0 ms 188 KB
222 Bytes
02/01/2023
10:23
2
H
Võ Thanh Hà @2280600789
0 ms 188 KB
272 Bytes
07/02/2023
21:18
3
H
Võ Thanh Hà @2280600789
0 ms 192 KB
272 Bytes
07/02/2023
21:18
4
K
0 ms 192 KB
294 Bytes
09/04/2023
17:53
5
V
0 ms 192 KB
434 Bytes
14/01/2023
18:17
6
0 ms 192 KB
670 Bytes
12/02/2023
14:28
7
0 ms 196 KB
312 Bytes
10/02/2023
16:36
8
0 ms 196 KB
400 Bytes
02/01/2023
11:33
9
M
Lê Quang Minh @2280601934
0 ms 196 KB
556 Bytes
11/02/2023
10:07
10
0 ms 196 KB
670 Bytes
12/02/2023
14:40
11
0 ms 200 KB
767 Bytes
27/09/2023
12:31
12
0 ms 200 KB
820 Bytes
03/03/2023
22:48
13
A
Nguyễn Bá An @25820200110
0 ms 220 KB
400 Bytes
26/11/2025
09:16
14
A
Lý Thuận An @2280618256
0 ms 224 KB
508 Bytes
12/05/2025
14:44
15
V
Phạm Quang Vinh @25820200132
0 ms 224 KB
2054 Bytes
02/12/2025
15:11
16
A
0 ms 248 KB
332 Bytes
08/03/2023
23:46
17
Q
0 ms 248 KB
385 Bytes
23/02/2023
16:08
18
0 ms 248 KB
492 Bytes
16/02/2023
23:50
19
T
0 ms 252 KB
306 Bytes
14/01/2023
16:49
20
0 ms 252 KB
446 Bytes
01/04/2023
15:20

LỊCH SỬ CÁ NHÂN

Vui lòng đăng nhập để xem lịch sử làm bài của bạn.

THẢO LUẬN BÀI TOÁN

5 tháng trước

Hướng dẫn

Cách 1: Lưu tất cả các ước chung của MN vào 1 mảng, ước chung lớn thứ k nằm ở vị trí k-1 (nếu mảng giảm dần) hoặc n-k+1 (nếu mảng tăng dần) với n là số lượng ước chung của MN

Code tham khảo cho cách 1:

#include<bits/stdc++.h>
using namespace std ;
int main(){
    int m, n, k, d ; cin >> m >> n >> k ;
    int a[100];
    int b = 0 ;
    d = max(m, n);
    for(int i = 1; i <= d; i++ )
        if(( n % i == 0 ) && ( m % i == 0 )){
            b++; a[b] = i ;
        }
    cout << a [ b - k + 1 ];
}

Cách 2: Duyệt i từ min(M,N) xuống 1, nếu i là ước chung của MN thì giảm k, đáp án là ước chung của MN khi k=0

Vào thảo luận 0 Phản hồi
H
5 tháng trước

C/C++ tại sao kết quả sai giúp minh với :((

include

using namespace std;

int main(){ int m, n; cin >> m >> n; int k = 1; for (int i = 1; i <= min(m, n); i++){ if (m % i == 0 && n % i == 0){ k = i; } } cout << "Uoc so chung lon nhat cua " << m << " va " << n << " la: " << k << endl; return 0; }

Vào thảo luận 1 Phản hồi
N
9 tháng trước

Help me

Giúp em bài này với ạ

Vào thảo luận 1 Phản hồi
Viết code