Ước phi thường (Ôn tập OLP MT&TN lần 7)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 900 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cô giáo Mẫn đang dẫn dắt đội ngũ kỹ sư phát triển ứng dụng đọc báo SetNews. Để tối ưu hóa thuật toán phân phối các bài báo vào bộ nhớ đệm (cache), hệ thống cần chia tổng số lượng bài viết \(n\) thành các cụm đều nhau.

Cô Mẫn yêu cầu team phát triển phải tìm ra cách chia sao cho kích thước của một cụm (gọi là \(d\)) là lớn nhất có thể để giảm thiểu số lượng cụm cần quản lý. Tuy nhiên, để đảm bảo tính phân tán, kích thước \(d\) không được phép là một ước tầm thường của \(n\) (nghĩa là \(d\) phải khác 1 và \(n\)).

Nhiệm vụ của bạn là giúp team SetNews viết một chương trình nhận vào số nguyên dương \(n\) và in ra ước dương \(d\) lớn nhất thỏa mãn yêu cầu của cô giáo Mẫn. Nếu không tồn tại cách chia nào hợp lệ, hãy in ra -1.

Input

  • Gồm một dòng duy nhất chứa số nguyên dương \(n\).
  • Giới hạn: \(n \le 10^{14}\).

Output

  • In ra một số nguyên duy nhất là ước dương không tầm thường lớn nhất của \(n\). Nếu không có ước nào thỏa mãn, in ra -1.

Example

Test 1

Input
6
Output
3
Note

Các ước dương của 6 là 1, 2, 3 và 6. Các ước không tầm thường là 2 và 3. Ước không tầm thường lớn nhất là 3.

Scoring

  • Subtask 1 (60% số điểm): \(n \le 10^6\)
  • Subtask 2 (40% số điểm): \(n \le 10^{14}\)

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.