Project Euler 29

Project Euler 29

题目

Distinct powers

Consider all integer combinations of $a^b$ for $2 \le a \le 5$ and $2 \le b \le 5$:

If they are then placed in numerical order, with any repeats removed, we get the following sequence of $15$ distinct terms:

How many distinct terms are in the sequence generated by $a^b$ for $2\le a \le 100$ and $2 \le b \le 100$?

解决方案

使用Python计算大数的特点,可以直接将所有数计算出来。

另外一种方案是,把每个数对$e$取对数,然后把$b\ln a$计算出来。不过这种做法的代价是需要特别注意浮点数的误差。

代码

1
2
3
N = 100
ans = len(set(a ** b for a in range(2, N + 1) for b in range(2, N + 1)))
print(ans)
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
Ujimatsu Chiya 微信 微信
Ujimatsu Chiya 支付宝 支付宝