Bài tập F45: Các ước thực sự
Ước thực sự của số nguyên dương n là các ước nguyên dương khác l và n. Xây dựng hàm divisors với tham số là số nguyên dương n và trả về số lượng ước thực sự của n, (0 $\leq$ n $\leq$ 10$^{12}$). Viết chương trình nhập vào số nguyên dương n từ bàn phím, (0 $\leq$ n $\leq$ 10$^{12}$), sử dụng hàm đã xây dựng đưa ra màn hình số ước thực sự của n.
Ví dụ:
Input |
Output |
28 |
4 |
Gợi ý:
- Điều kiện để số nguyên dương p là ước thực sự của n là: l < p < n và n % p == 0.
Nếu p là ước thực sự của n thì q = n//p cũng là ước thực sự của n. Đặc biệt, p == q khi và chỉ khi p$^{2}$ = n.
- Như vậy ta chỉ cần tìm các p thoả mãn điều kiện (với 0 ≤ n ≤ 1012):
1 < p $\leq$ n $\leq$ [$\sqrt{n}$ + 0.5]
Bài Làm:
Tham khảo chương trình sau: