Cho hai số nguyên dương M và N. Tìm ước số chung lớn thứ k của M và N. Dữ liệu bảo đảm luôn luôn có đáp án.
MÔ TẢ BÀI TOÁ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
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
Bành Tuấn Kiệt
@2280601608
|
0 ms
192 KB
294 Bytes
|
09/04/2023 17:53 |
| 5 |
V
Nguyễn Thế Vũ
@2180608244
|
0 ms
192 KB
434 Bytes
|
14/01/2023 18:17 |
| 6 |
H
Trịnh Công Hiếu
@2280600904
|
0 ms
192 KB
670 Bytes
|
12/02/2023 14:28 |
| 7 |
D
Phạm Doãn Hoàng Dân
@2180607355
|
0 ms
196 KB
312 Bytes
|
10/02/2023 16:36 |
| 8 |
C
Lê Phạm Hùng Cường
@2280600343
|
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 |
H
Clb Olympic Tin Học Hutech
@olympictinhoc
|
0 ms
196 KB
670 Bytes
|
12/02/2023 14:40 |
| 11 |
K
Phan Trần Anh Khoa
@2280601541
|
0 ms
200 KB
767 Bytes
|
27/09/2023 12:31 |
| 12 |
K
Nguyễn Hoàng Khang
@1911064849
|
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
Nguyễn Thuận An
@1911256118
|
0 ms
248 KB
332 Bytes
|
08/03/2023 23:46 |
| 17 |
Q
Nguyễn Phú Quý
@2280602665
|
0 ms
248 KB
385 Bytes
|
23/02/2023 16:08 |
| 18 |
D
Nguyễn Lê Tiến Dũng
@2280600401
|
0 ms
248 KB
492 Bytes
|
16/02/2023 23:50 |
| 19 |
T
Phạm Đức Tài
@2080601324
|
0 ms
252 KB
306 Bytes
|
14/01/2023 16:49 |
| 20 |
B
Nguyễn Ngọc Bảo
@2280600212
|
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
H
Trần Ngô Quang Huy
@24807700020
Hướng dẫn
Cách 1: Lưu tất cả các ước chung của M và N 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 M và N
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 M và N thì giảm k, đáp án là ước chung của M và N khi k=0
Vào thảo luận
0 Phản hồi
H
Nguyễn Hoàng Huy
@2380612877
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