Trạng thái

Đề bài

Trong một phòng nghiên cứu toán học, có các thẻ số được đánh số lần lượt từ \(1\) đến \(N\). Mỗi thẻ chỉ được sử dụng nhiều nhất một lần.

Nhà nghiên cứu được phép chọn một tập con gồm các thẻ số nguyên dương phân biệt. Gọi \(P\) là tích các số ghi trên những thẻ được chọn.

Một cách chọn được gọi là hoàn hảo nếu \(P\) là một số chính phương.

Ký hiệu \(F(N)\) là giá trị lớn nhất của \(P\) trong tất cả các cách chọn hoàn hảo từ các thẻ mang số từ \(1\) đến \(N\).

Cho một số nguyên dương \(X\). Hãy tìm số nguyên dương nhỏ nhất \(N\) sao cho

\(F(N)\ge X\).

Chỉ xét các giá trị \(1\le N\le 10^7\).

Nếu không tồn tại giá trị \(N\) thỏa mãn thì in ra -1.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên dương \(X\).

Dữ liệu ra

In ra số nguyên dương nhỏ nhất \(N\) sao cho \(F(N)\ge X\).

Nếu không tồn tại thì in ra -1.

Ràng buộc

  • \(1\le X\le 10^{18}\).
  • Chỉ xét \(1\le N\le 10^7\).
  • Mỗi số trong tập \(\{1,2,\ldots,N\}\) chỉ được chọn nhiều nhất một lần.

Subtask

  • Subtask 1 (20%): \(X\le 10^6\).
  • Subtask 2 (30%): \(X\le 10^{12}\).
  • Subtask 3 (50%): Không có ràng buộc nào khác.

Sample Input 1

100

Sample Output 1

6

Sample Input 2

500

Sample Output 2

8

Giải thích

Ở ví dụ thứ nhất, với \(N=5\), tích chính phương lớn nhất có thể tạo được là \(4\), nên chưa đạt ngưỡng \(100\).

Với \(N=6\), có thể chọn các thẻ \(\{2,3,4,6\}\), khi đó

\(P=2\cdot3\cdot4\cdot6=144\),

là số chính phương và \(144\ge100\), do đó đáp án là \(6\).

Ở ví dụ thứ hai, với \(N=7\), tích chính phương lớn nhất có thể tạo được là \(144\), nên chưa đạt ngưỡng \(500\).

Với \(N=8\), có thể chọn các thẻ \(\{3,4,6,8\}\), khi đó

\(P=3\cdot4\cdot6\cdot8=576\),

là số chính phương và \(576\ge500\), vì vậy đáp án là \(8\).

Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1 G
I/O
stdin -> stdout
Tác giả
Loại đề bài
Toán: Số học
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text