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.

Author: buitrunghieu

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ủa n hay không, nếu có in ra màn hình ước i.

  • Nếu bound bằng 1 (tức là n là số nguyên tố), và n khác 1, thì in ra màn hình n 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ủa n hay không, nếu có in ra màn hình ước đối xứng của i (tức là n / i).

Comments

There are no comments at the moment.

Zalo