[Buổi 7][Hàm số học][WS] Bài 1: Number Toolkit Lite


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Number Toolkit Lite

Bối cảnh

Bạn đã có nhiều thuật toán số học độc lập. Bây giờ hãy gom chúng thành một bộ công cụ nhỏ, mỗi tính năng được đóng gói bằng một hàm riêng.

Online Judge gửi nhiều lệnh. Chương trình cần đọc lệnh, gọi đúng hàm và in kết quả. Mỗi chức năng nên được test độc lập trước khi tích hợp.

Yêu cầu

  1. Lệnh 1 a b: in GCD của a và b.
  2. Lệnh 2 a b: in LCM không âm của a và b; nếu một số bằng 0, LCM bằng 0.
  3. Lệnh 3 n: in PRIME hoặc NOT PRIME.
  4. Lệnh 4 n: in số lượng ước dương của n (n > 0).
  5. Lệnh 5 n: in tổng chữ số của trị tuyệt đối của n.
  6. Lệnh 0: kết thúc.
  7. Mã khác: in INVALID.

Yêu cầu tổ chức code

Tạo các hàm độc lập gcdEuclid, lcmValue, isPrime, countDivisors, sumDigits.

Lưu ý: Online Judge chủ yếu kiểm tra tính đúng của output. Yêu cầu tổ chức code được dùng để rèn đúng kỹ năng của buổi học và sẽ được giảng viên quan sát khi chữa bài.

Input

Nhiều dòng; dòng cuối chỉ chứa 0.

Output

Mỗi lệnh khác 0 tạo một dòng output.

Ràng buộc

Không quá 100 lệnh. |a|,|b|,|n| ≤ 10^12; với lệnh 4, n > 0.

Ví dụ 1

Input

0

Output


Giải thích

Không có lệnh xử lý, chương trình gặp 0 và kết thúc ngay nên không có output.

Ví dụ 2

Input

1 48 18
0

Output

6

Giải thích

Lệnh 1 48 18 yêu cầu GCD. GCD của 48 và 18 bằng 6, nên output là 6.

Thông tin học tập

  • Module: M02
  • Buổi: B07
  • Loại bài: WORKSHOP
  • Độ khó: Medium
  • Concepts: function decomposition, gcd, lcm, primality testing, divisor counting, digit sum
  • Giới hạn kiến thức: B01-B07
  • Time limit: 2 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo