#P01007. 最大的幂

最大的幂

题目背景

本问题需要用到高中数学对数问题,如果不了解对数知识,建议不做本题。

题目描述

对于正整数 NN 和正整数 pp,请找出一个最大的整数 nn,使得 pnNp^n \leq N

输入格式

22 行。

第一行是一个正整数 NN;第二行是另一个正整数 pp

输出格式

一个满足题目条件的整数 nn

输入输出样例

1024
2
10

说明/提示

👀️ 对于C/C++语言,可以使用 cmathcmath 中的数学函数 log(x)log(x)log2(x)log2(x)log10(x)log10(x) 来分别计算以自然数ee、2、10为底 xx 的对数(高中数学知识,可以自行搜索),要计算以其他数为底的对数,可以使用数学中的 换底公式 实现,例如要计算 logablog_a{b},C/C++可以使用 log(b)/log(a)log(b)/log(a) (就是数学中的 lnblna\frac{\displaystyle \ln{b}}{\displaystyle \ln{a}})来计算。


👀️ 对于Python语言,可以使用 int 函数来取整。例如 int(3.14159) 结果是 3int(2.00) 结果是 2

👀️ Python语言可以使用 math 模块中的 log 函数来求 对数(高中数学知识,可以自行搜索),使用方法如下:

  1. 首先需要使用 import 语句导入 math 模块:import math
  2. 然后就可以使用 math.log() 函数来求对数,例如 math.log(1024,2),计算的是底为 2 时,1024 的对数(22 的多少次方结果是 10241024)。

👀️ math.log() 函数的使用方法可以参考下面程序:

import math
ans = math.log(1024,2)
print(ans)

👀️ 如果使用非Python语言编写程序,对于100%100\%的数据,1N10181 \leq N \leq 10^{18}1qN1 \leq q \leq N