Biến đổi số

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: 1600 (p) Thời gian: 2.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho số nguyên dương \(a,b,d\). Mỗi bước bạn được thực hiện một trong hai phép biến đổi sau:

  1. Nhân \(a\) với \(k\), trong đó \(1<k \le d\);
  2. Chia \(a\) cho \(k\), trong đó \(1<k \le d\)\(a\) chia hết cho \(k\);

Yêu cầu: Tìm số phép biến đổi ít nhất để đưa \(a\) thành \(b\).

Input

  • Gồm một dòng chứa ba số nguyên dương \(a,b,d\);

Output

  • Gồm một dòng chứa một số là số phép biến đổi ít nhất cần thực hiện. Nếu không biến đổi được ghi \(-1\).

Scoring

  • Subtask \(1\): \(a,b,d \le 10\);
  • Subtask \(2\): \(a,b,d \le 10^9\);

Example

Test 1

Input
3 5 6
Output
2

Test 2

Input
3 1 2
Output
-1

Bình luận

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

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