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\):
\[2^2=4, 2^3=8, 2^4=16, 2^5=32\] \[3^2=9, 3^3=27, 3^4=81, 3^5=243\] \[4^2=16, 4^3=64, 4^4=256, 4^5=1024\] \[5^2=25, 5^3=125, 5^4=625, 5^5=3125\]
If they are then placed in numerical order, with any repeats removed, we get the following sequence of \(15\) distinct terms:
\[4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125\] 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 | N = 100 |