Editorial for C++ Bài 5.C18 [Mảng 1 Chiều]: Ướ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
icó phải là ước củanhay không, nếu có in ra màn hình ướci.Nếu
boundbằng1(tức lànlà số nguyên tố), vànkhác 1, thì in ra màn hìnhnlà 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
icó phải là ước củanhay không, nếu có in ra màn hình ước đối xứng củai(tức làn / i).
Comments