[Buổi 8][Củng cố hàm][ADV] Bài 1: Bảng lệnh số học tổng hợp


LÀM BÀI

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

Author:
Problem types
Allowed languages
C++

Bảng lệnh số học tổng hợp

Bối cảnh

Một hệ thống chấm bài nội bộ cần xử lý một chuỗi yêu cầu số học khác nhau mà không được lưu toàn bộ dữ liệu. Mỗi lệnh được xử lý ngay khi đọc.

Đây là bài Advanced của Module 02: độ khó đến từ việc phối hợp nhiều hàm và giữ cấu trúc code rõ ràng, không phải từ một thuật toán mới.

Yêu cầu

  1. Lệnh 1 a b c: in GCD của ba số.
  2. Lệnh 2 n: in số nguyên tố nhỏ nhất không nhỏ hơn n.
  3. Lệnh 3 n: in YES nếu n có đúng 3 ước dương, ngược lại NO.
  4. Lệnh 4 n: in tổng các ước dương của n.
  5. Lệnh 5 n: in PERFECT hoặc NOT PERFECT.
  6. Lệnh 0: kết thúc.
  7. Mã khác: INVALID.

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

Giữ main() ở vai trò điều phối. Mỗi thuật toán là một hàm riêng và không dùng mảng/vector.

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 là 0.

Output

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

Ràng buộc

Tối đa 50 lệnh. Với lệnh 2: -10^6 ≤ n ≤ 10^9; các lệnh khác dùng 1 ≤ n ≤ 10^10.

Ví dụ 1

Input

0

Output


Giải thích

Không có lệnh trước 0 nên không có output.

Ví dụ 2

Input

1 12 18 30
0

Output

6

Giải thích

GCD của 12, 18 và 30 là 6; output là 6.

Thông tin học tập

  • Module: M02
  • Buổi: B08
  • Loại bài: ADVANCED
  • Độ khó: Hard
  • Concepts: function decomposition, command processing, code reuse, number theory utilities
  • Giới hạn kiến thức: B01-B08
  • Time limit: 2 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo