Lập trình Scratch

Cặp số hứa hôn code kiểm tra bằng Pascal và Scratch

Cặp số hứa hôn hay cặp số thân thiết (betrothed number) ôi lạ thế số mà cũng hứa hôn với nhau được nhỉ, quả thật các con số toán học cũng có hồn đấy nhỉ, nào là con số hạnh phúc hay số mạnh mẽ rồi số thân thiết phải không các bạn! Ngay khi đọc được thông tin về con số này trên mạng mình đã đầu tư vẽ một cái hình minh họa cho nó  ở bên dưới ngé. Hãy tham khảo với onthihsg ngay nào.

Video hướng dẫn cặp số hứa hôn

Định nghĩa cặp số hứa hôn

Cặp số hứa hôn là hai số nguyên dương thỏa mãn tổng tất cả các ước thực sự của số này lớn hơn số kia 1 đơn vị. Ước thực sự là ước khác số đó.
Ví dụ: (48; 75) là một cặp số hứa hôn vì:
Tổng các ước thực sự của 48 là: 1 + 2 + 3 + 4 + 6 + 8 + 12 +16 + 24 = 76 hơn 75 một đơn vị
Tổng các ước thực sự của 75 là: 1 + 3 + 5 + 15 + 25 = 49 = 48 + 1

Một số cặp số hứa hôn đầu tiên đã được tìm ra: (48, 75), (140, 195), (1050, 1925), (1575, 1648), (2024, 2295), (5775, 6128).

Sự thú vị của các con số trong Toán học

Xây dựng code kiểm tra cặp số hứa hôn bằng Pascal và Scratch

Mình chợt nghĩ ra một bài tập Pascal và Scratch như sau: Viết chương trình nhập vào một số nguyên dương (a)  và tìm số hứa hôn với số đó (nếu có)

Các bạn thử viết chương trình bằng Pascal hoặc Scratch để giải quyết bài toán trên nào.

Một chút ý tưởng có thể gợi ý cho các bạn:

  • Sử dụng kĩ thuật cộng dồn để tính tổng (b) các ước thực sự của số nguyên dương a
  • Số ghép với a để có thể là cặp số hứa hôn chỉ có thể là b, các bạn chú ý có thể thôi nhé.
  • Bây giờ kiểm tra xem b có đúng đính hôn được với a không bằng cách: Tiếp tục cộng dồn tính tổng (s) các ước thực sự của b
  • So sánh s + 1 và a nếu bằng thì b là số hứa hôn của a, ngược lại không tìm được số hứa hôn với a.

Mình nghĩ bài toán này cũng đơn giản các bạn có thể tham khảo lại kĩ thuật cộng dồn là thực hiện được ngay thôi. Các bạn có thể tham khảo code kiểm tra cặp số thân thiết nó cũng tương tự như thế.

Chúc các bạn thành công, bạn nào có bài nào hay comment để cùng chia sẻ tiếp nào

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button