python-004Đọc toàn bộ đề miễn phí

Tổng chữ số và Ước chung lớn nhất Euclid

Trong các thuật toán mã hóa khóa công khai (RSA) được giảng dạy tại AI Empire Academy, việc tính toán tổng trọng số chữ số và ước chung lớn nhất giữa hai số nguyên là các thao tác…

PythonTrung bình25 phút

Tiến độ của tôi ở bài này

Điểm được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

loopsnumber theoryeuclidean algorithmmath

Kiến thức tiên quyết: while loop, functions, modulo.

Nội dung đề bài

Mục tiêu kiến thức

  • Áp dụng vòng lặp while để tách các chữ số của một số nguyên lớn mà không phụ thuộc vào chuỗi ký tự.
  • Cài đặt thuật toán Euclid tìm ước chung lớn nhất (GCD) với độ phức tạp O(log(min(|a|, |b|))).
  • Xử lý các trường hợp số âm và giá trị 0.

Mô tả bài toán

Trong các thuật toán mã hóa khóa công khai (RSA) được giảng dạy tại AI Empire Academy, việc tính toán tổng trọng số chữ số và ước chung lớn nhất giữa hai số nguyên là các thao tác cơ bản thường dùng.

Hãy viết hàm digit_sum_and_gcd(a: int, b: int) -> tuple[int, int, int] thực hiện:

  • Tính tổng các chữ số của |a| (lấy giá trị tuyệt đối).
  • Tính tổng các chữ số của |b| (lấy giá trị tuyệt đối).
  • Tính ước chung lớn nhất gcd(|a|, |b|) bằng thuật toán Euclid.
  • Nếu cả hai số đều bằng 0 (a = 0 và b = 0), quy ước gcd(0, 0) = 0.
  • Nếu một trong hai số bằng 0, gcd(0, x) = |x|.
  • Trả về một tuple gồm đúng 3 số nguyên: (tong_cs_a, tong_cs_b, gcd_ab).

Input

Hai số nguyên a, b.

Output

Một tuple[int, int, int] tương ứng: (digit_sum(a), digit_sum(b), gcd(a, b)).

Ràng buộc

  • -1015 ≤ a, b ≤ 1015.
  • Thời gian chạy tối đa: 1000ms.
  • Giới hạn bộ nhớ: 256MB.

Ví dụ 1

Input

`a = 48, b = 18`

Output

`(12, 9, 6)`

Giải thích

  • Tổng chữ số của 48 là 4 + 8 = 12.
  • Tổng chữ số của 18 là 1 + 9 = 9.
  • gcd(48, 18) = 6.

Ví dụ 2

Input

`a = -123, b = 0`

Output

`(6, 0, 123)`

Giải thích

  • |-123| = 123, tổng chữ số là 1 + 2 + 3 = 6.
  • |0| = 0, tổng chữ số là 0.
  • gcd(123, 0) = 123.
3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.