Editorial for C++ Bài 3.C3: Ước số
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Lời giải chi tiết:
Đầu tiên, các bạn cần khai báo kiểu dữ liệu của số nguyên \(N\) dựa vào khoảng giá trị đề bài đưa N ( \(N \leq 10^9\)).
Bước 2, các bạn dùng lệnh cin
để nhập số vừa khai báo ở trên.
Bước 3, Tính căn bậc hai của n
và lưu vào biến bound
. Việc này giúp giảm số lần lặp trong vòng for
sau đó, vì nếu có một ước i
lớn hơn căn bậc hai của n
, thì ước đối xứng của i
đã được xét trong vòng for
trước đó.
Bước 4, Vòng lặp từ i = 1
đến i
nhỏ hơn hoặc bằng bound
:
Kiểm tra xem
i
có phải là ước củan
hay không, nếu có in ra màn hình ướci
.Nếu
bound
bằng1
(tức làn
là số nguyên tố), vàn
khác 1, thì in ra màn hìnhn
là một ước.
Bước 5, Vòng lặp ngược từ i
bằng bound
đến i
lớn hơn hoặc bằng 1:
- Kiểm tra xem
i
có phải là ước củan
hay không, nếu có in ra màn hình ước đối xứng củai
(tức làn / i
).
Comments